我有一个JUnit测试
@Suite
@IncludeEngines("cucumber")
@SelectClasspathResource("/features")
@SelectClasspathResource("/generated")
class NightlyTest {
}
当我运行mvn test
时,它会运行/features
和/generated
中的所有cucumber测试
在/generated
下有成千上万的cucumber测试,它们需要几个小时才能运行。在我们的管道中,我希望能够控制是否包含生成的测试。
如何才能只运行基于mvn命令或环境变量的特定测试?mvn test -ExcludeGeneratedTests
是最好的
如果我将@ExcludeTags("generated")
添加到类中,它将排除我用@generated标记的所有测试,这正是我想要的,只是我不知道如何从管道使用的mvn命令中打开和关闭它。
我试过设置一个环境变量EXCLUDE_TAGS=generated
并将注解更改为@ExcludeTags("${EXCLUDE_TAGS}")
,但它不起作用。我也试过许多其他模拟解决方案,但似乎都不起作用。
如何从mvn命令中包含/排除生成的测试?
1条答案
按热度按时间q35jwt9p1#
您可以使用Maven来包含和排除测试组。例如:
这将运行任何标记为Smoke或Sanity的测试,但其中没有标记为Ignore的测试。
这些属性的值是JUnit 5标记表达式,Surefire将把这些表达式传递给JUnit平台passes them to Cucumber。