考虑这个简单的项目:https : //github.com/ekalin/cucumber-junit5-gradle。它包含使用JUnit5的Cucumber功能。
按照https://github.com/cucumber/cucumber-jvm/tree/master/junit-platform-engine的说明,我创建了一个带注解的类,@Cucumber
以便可以发现测试。当我运行时./gradlew test
,该功能将被发现并运行。
但是,如果我尝试仅通过选择该测试./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 Platform更好的集成,以便可以使用其所有功能。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句