[英]"mvn test" 0 tests run - spring + 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.