繁体   English   中英

使用 Cucumber JUnit5 引擎选择单个测试失败

[英]Selecting a single test with Cucumber JUnit5 engine fails

考虑这个简单的项目: https : //github.com/ekalin/cucumber-junit5-gradle 它包含一个 Cucumber 特性,使用 JUnit5。

按照https://github.com/cucumber/cucumber-jvm/tree/master/junit-platform-engine的说明,我创建了一个用@Cucumber的类,以便可以发现测试。 当我运行./gradlew test ,该功能被发现并运行。

但是,如果我尝试仅使用./gradlew test --tests cucumber.junit5.gradle.SampleSteps (或其他选择测试的方法)选择该测试, ./gradlew test --tests cucumber.junit5.gradle.SampleSteps收到此错误:

Execution failed for task ':test'.
> No tests found for given includes: [cucumber.junit5.gradle.SampleSteps](--tests filter)

我已经尝试将includeEngines("cucumber")useJUnitPlatform但它没有任何区别。

是否有一些配置允许在使用不同引擎时选择单个测试?

Gradle 尚不支持发现或过滤非基于类的测试(参见: gradle/#4773 )。 相反,Gradle 要求 JUnit 平台发现测试包中所有类中的测试。 @Cucumber注释是一种解决方法,用于发现带注释的类的包中的所有功能文件。

当您使用--tests cucumber.junit5.gradle.SampleSteps时,您可以对所有测试结果应用基于类的过滤器。 因为@Cucumber注释类是一个解决方法,它不是已发现测试的一部分,并且因为功能文件没有ClassSource而是FileSource gradle 会将它们全部排除。

您目前可以做的最好的事情是使用 gradle/#4773 中建议的解决方法。 您可能还希望 Gradle 团队提供与 JUnit 平台的更好集成,以便可以使用其所有功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM