当前位置: 首页 > 知识库问答 >
问题:

如何使Cucumber特性作为本地单元测试在Android项目中运行?

段干博明
2023-03-14

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

我的问题是Gradle无法识别Cucumber特性,并且在运行Gradlew test时不会运行。

到目前为止,我是这样设置的:

>

  • 将这些依赖项添加到我的应用程序的构建中。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'
    
    android {
        ...
        sourceSets {
            test {
                assets.srcDirs = ['src/test/java/integrationTest/assets']
            }
        }
    }
    

    为步骤添加了一个类(steps1.java),如上所示。

    我在这里漏掉了什么?

  • 共有1个答案

    邹嘉石
    2023-03-14

    您的功能文件可能没有被获取,因为您没有包含运行程序。您可以创建一个JUnit Runner,也可以使用Gradle cucumber插件。不过,我不确定这两种方法是否适用于Android。

    另外,您不需要io.cucumber:cucumber-JVM:3.0.2作为依赖项。它只是一个POM。

     类似资料:
    • 我在Android Studio3.0.1和Kotlin中运行时遇到了一些问题(我在以前的Android Studios和Java中没有遇到这样的问题)。我在包中创建了这个(非常简单的)类[reference],它如下所示: 当我尝试运行测试时,有两个问题。首先,它希望在控制台中运行测试,而不打开仿真器或将apk包部署到设备(因为这只是一个正常的本地单元测试)。此外,我还会收到以下错误消息: 找不

    • 尝试设置远程代码欺骗单元测试在PhpStorm中的Yii2项目。 使用SSH,我可以登录到服务器,转到我的Yii2项目的根目录并运行:

    • 步骤的定义: 这是文件夹的结构 当我运行时,我得到错误: 在步骤的定义中,我仍然从命令行得到相同的错误,但是当我在AS中运行它时,测试成功地运行了(它显示了最后一步的失败,但这是意料之中的)。 如果我用AndroidJunitRunner替换Runner,并添加一个non-cucumber测试,那么一切都正常:我也可以获取上下文。 如果从命令行执行以下步骤: instrumentation_res

    • 但是,我只想运行以一些字符串开始的文件。假设前缀为“AsiaUserTests”的文件。类似下面的内容 这将导致,所以我想知道是否有一种方法可以做到这一点,因为我在Web中找不到这样的东西。

    • 在一个多模块的Android项目中,我有一个其他Android库和应用程序依赖的普通Java项目。我最近将整个项目迁移到使用Gradle构建。 我在运行纯Java项目的junit测试时遇到了一个问题,仅在Android Studio中。在命令行上,测试运行正常: 这将按预期执行单元测试,如果我插入一个作为健全性检查,我将正确地获得预期的失败。 但是,我无法在Android Studio中运行单元测

    • 我一直试图获得本地单元测试的代码覆盖率,但没有成功。 这里有一个关于我所说的本地单元测试的参考。 https://developer.android.com/training/testing/unit-testing/local-unit-tests.html 但这似乎无济于事。我是不是漏掉了什么? 注意,如果我通过Android Studio运行本地单元测试,一切都很好。我点击了我的“测试”模块