java - 如何使 Cucumber 功能作为本地单元测试在 Android 项目中运行?

标签 java android android-studio cucumber cucumber-jvm

我有一个用 Java 编写的 Android 项目,正在 Android Studio 中处理。

我想使用 Cucumber 对一些内部组件进行集成测试(注意:我知道这不是 BDD 方式,但对我来说很有用)。我希望测试以 local unit tests 运行(没有 Instrumentation)使用 gradlew test ,因为被测组件不与 Android SDK 交互。

我的问题是,Cucumber 功能无法被 Gradle 识别,并且在我运行 gradlew test 时不会运行。

到目前为止我的设置方式如下:

  1. 将这些依赖项添加到我的应用的 build.gradle 中:

    testImplementation 'io.cucumber:cucumber-java:3.0.2'
    testImplementation 'io.cucumber:cucumber-junit:3.0.2'
    testImplementation 'io.cucumber:cucumber-jvm:3.0.2'
    
  2. 此外,我还添加了放置功能文件的路径:

    android {
        ...
        sourceSets {
            test {
                assets.srcDirs = ['src/test/java/integrationTest/assets']
            }
        }
    }
    

    这是基于此文件夹结构:

    enter image description here

  3. 添加了步骤类 (Steps1.java),如上所示。

我在这里缺少什么?

最佳答案

您的功能文件可能不会被拾取,因为您没有包含运行者。您可以创建 JUnit Runner或使用Gradle cucumber plugin 。我不确定这两者是否适用于 Android。

此外,您也不需要 io.cucumber:cucumber-jvm:3.0.2 作为依赖项。它只是一个 pom。

关于java - 如何使 Cucumber 功能作为本地单元测试在 Android 项目中运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52348197/

相关文章:

java - Java中不重复的字符数组输入

java - Spring Boot + Hibernate 恩弗斯。创建名称为 'entityManagerFactory' 的 bean 时出错

java - 如何同时从两个服务读取值

javascript - 如何从 android 上的 javascript 访问短信收件箱 (phonegap)

android - 在 android studio 中导入项目时出错?

Java8,HttpClient,接收 "Received fatal alert: handshake_failure"

java - Android 中的运行时类是什么?

java - 如何在 Android Studio 中从 SimonVT 导入 MenuDrawer

android-layout - android studio 3.0.1 上的纯文本和 TextView 有什么区别?

android - 在android studio中安装存储库和同步项目错误说所有包都不可用