Serenity 2.0.x版本如何通过命令行传递Cucumber标签参数
问题原因
Cucumber 4.x 版本正式废弃了cucumber.options系统参数,同时 Serenity 2.0.x 对 Cucumber 标签的传递规则有适配调整,你同时传递了多个冲突的参数配置,导致标签过滤逻辑未生效,全量Feature被执行。
解决方案
- 第一步:清理无效参数,删除命令里的
-Dtags="@mytag"和-Dcucumber.options="--tags '@mytag'"两段配置 - 第二步:替换为 Cucumber 4.x 官方指定的标签过滤参数,正确命令如下:
mvn verify -Dit.test=MyRunner -Dcucumber.filter.tags="@mytag"
- 第三步:检查你的
MyRunner启动类上的@CucumberOptions注解,如果注解内配置了tags属性,需要删除该属性配置,否则注解内的写死配置会覆盖命令行传入的参数 - 如果你使用Windows系统执行命令,需要去掉标签两侧的单引号,调整为:
mvn verify -Dit.test=MyRunner -Dcucumber.filter.tags=@mytag
额外校验项
- 确认对应Feature文件/Scenario上的标签拼写正确,且前缀带有
@符号,和命令中传入的标签完全一致 - 如果你在pom.xml的maven-failsafe-plugin或者maven-surefire-plugin中配置了固定的cucumber参数,需要调整为可覆盖的变量形式,避免写死配置优先级高于命令行参数
内容的提问来源于stack exchange,提问作者Dickens A S
相关产品推荐
相关产品推荐

