CucumberOptions配置多个运行标签报语法错误如何解决
Cucumber @CucumberOptions多标签运行配置方案
问题根因
当前写法tags = {"@Feature1", "@Feature2"}触发报错、运行不符合预期的核心原因有两点:
- Cucumber中tags参数传入数组多值时,默认是AND逻辑,只会匹配同时标注所有传入标签的用例,无法满足“运行@Feature1、@Feature2任意一个标签对应特性”的OR逻辑需求
- Cucumber 4.0及以上版本不再支持多字符串数组的tags传参形式,直接写数组会触发语法错误
正确配置写法
主流版本(Cucumber 4.x ~ 最新7.x版本)
使用标签表达式语法,在单个字符串内用or关键字声明或逻辑,配置如下:
@RunWith(Cucumber.class) @CucumberOptions( features = "src/main/resources/features", glue = "stepDefinition", tags = "@Feature1 or @Feature2" )
旧版本(Cucumber 2.x ~ 3.x)
旧版本用逗号分隔标签表示OR逻辑,注意两个标签要放在同一个字符串内,不要拆成多个数组元素:
@RunWith(Cucumber.class) @CucumberOptions( features = "src/main/resources/features", glue = "stepDefinition", tags = {"@Feature1,@Feature2"} )
注意:如果把两个标签拆为数组的两个独立字符串元素,不管哪个版本都会被识别为AND逻辑,只会运行同时带有@Feature1和@Feature2的用例,和需求不符。
配置完成后启动测试类,会自动扫描加载两个标签对应的所有feature文件,不会运行其他无对应标签的用例。
内容的提问来源于stack exchange,提问作者Sherif Beshr
相关产品推荐
相关产品推荐

