gradle - Cucumber-JVM 与 Gradle,如何自动运行测试

标签 gradle cucumber-jvm

我正在开发一个使用 Gradle 作为构建系统的 Java 项目。

我想使用 Cucumber-JVM 添加一些 bdd 测试。正在关注this example我能够配置 Gradle 的 build.gradle 来执行名为 cucumber 的任务,并且我能够使用“gradle cucumber”执行该任务。

但是我正在寻找一种让 Gradle 在测试阶段(运行所有其他常规单元测试)自动运行该任务的方法。我还希望如果任何 cucumber 测试失败 (strict=true),则将构建标记为失败。

这可能吗?我对 Gradle 了解不多,而且 Google 到目前为止还没有产生任何真正有用的东西。

最佳答案

好吧,我想出了如何实现这一目标。只需将其添加到 build.gradle 即可:

test << {
        javaexec {
            main = "cucumber.api.cli.Main"
            classpath = configurations.cucumberRuntime + sourceSets.main.output + sourceSets.test.output
            args = ['--strict', '--monochrome', '--plugin', 'pretty', '--glue', 'com.mypackage', 'src/test/resources']
        }
}

您真正需要的只是功能文件和实现粘合代码的步骤 java 文件。您不需要带有 @RunWith 注释的 xxxCukesTest.java 文件,因为 Gradle 会忽略它。无论如何,您可能希望保留它,因为它使您能够从 IDE 运行测试。

工作真的很整洁!

关于gradle - Cucumber-JVM 与 Gradle,如何自动运行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35425984/

相关文章:

gradle - 在 gradle 中执行期间多次运行相同的任务

java - 如何传递一个参数 "abc": "12" to a cucumber(Java) step

java - 诱惑和截图

cucumber - 在 Then 步骤之前运行所有 Cucumber Give 步骤

maven - 如何为运行(Cucumber)验收测试指定一个单独的 Maven 目标?

mongodb - Gradle-运行mongoDB脚本

gradle - 如何使用 JAVA_OPTS 在 gitlab-ci.yaml 中设置 Gradle 代理变量

build - 在 Android Studio 中禁用 Gradle 自动生成

java - 从另一个主要方法使用 Main.run 运行 Cucumber 项目

gradle - 如何检查Gradle中当前使用的存储库?