如何配置Cucumber-JVM与Gradle:传入不存在测试名时让程序失败
解决方案:用Cucumber参数实现指定不存在测试名称时失败
完全可以通过传递Cucumber的特定参数实现这个需求,分两种情况看你的Cucumber版本:
针对Cucumber 6.x及以上版本
使用--fail-on-missing-scenarios参数,它的作用就是当你通过--name指定的测试名称没有匹配到任何场景时,直接让测试任务失败。
在Gradle中配置的两种方式:
固定参数到构建脚本:在
build.gradle(Groovy)或build.gradle.kts(Kotlin)里给Cucumber任务添加参数,这样每次运行测试都会生效:// Groovy DSL示例 tasks.withType(Test) { systemProperty 'cucumber.options', "${System.getProperty('cucumber.options', '')} --fail-on-missing-scenarios" }之后运行测试时只需传入测试名称:
./gradlew test -Dcucumber.options="--name '不存在的测试名称'"命令行直接传递所有参数:不用修改构建脚本,运行时同时传入测试名称和失败参数:
./gradlew test -Dcucumber.options="--name '不存在的测试名称' --fail-on-missing-scenarios"
针对Cucumber 5.x及更早版本
使用--strict参数,这个参数会同时触发两个行为:未定义的步骤会失败,以及指定的场景不存在时失败。运行方式类似:
./gradlew test -Dcucumber.options="--name '不存在的测试名称' --strict"
验证效果
当你传入不存在的测试名称时,Cucumber会在控制台输出类似0 scenarios passed, 0 failed, 0 skipped, 1 missing的信息,并且Gradle的test任务会直接标记为失败,完全符合你的需求。
内容的提问来源于stack exchange,提问作者ohad hofi
相关产品推荐
相关产品推荐

