Karate 是否可以在同一空手道命令行上包含和排除via标记

Karate 是否可以在同一空手道命令行上包含和排除via标记,karate,Karate,我们可以通过在命令行中包含以下内容来选择多个场景: -Dcucumber.options=“--tags@S1、@S2、@S6” 如果我想排除@S6,我可以: -Dcucumber.options=“--tags~@S6” 但是,如果我想包括@S1、@S2和排除@S6,则所有标记都将被忽略: -Dcucumber.options=“--tags@S1、@S2、~@S6” 如果我尝试使用以下选项加倍,所有标记也将被忽略: -Dcucumber.options=“--tags@S1,@S2”-Dcu

我们可以通过在命令行中包含以下内容来选择多个场景: -Dcucumber.options=“--tags@S1、@S2、@S6”

如果我想排除@S6,我可以: -Dcucumber.options=“--tags~@S6”

但是,如果我想包括@S1、@S2和排除@S6,则所有标记都将被忽略: -Dcucumber.options=“--tags@S1、@S2、~@S6”

如果我尝试使用以下选项加倍,所有标记也将被忽略: -Dcucumber.options=“--tags@S1,@S2”-Dcucumber.options=“--tags~@S6”

在一个命令行中是否有包含和排除的命令行方式


我想这样做的原因是运行所有类型的测试,但排除使用某些可能暂时关闭的外部系统的测试。

编辑:事实证明,我没有完全意识到与或之间的区别。这是一个很好的参考,查找“逻辑OR”和“逻辑and”:

所以要运行S1
S2
而不是
S3

mvn test -Dcucumber.options="--tags @S1,@S2 --tags ~@S3"
使用Java注释也是一样的:

@CucumberOptions(tags={"@S1,@S2", "~@S3"})

我想这里可能有几个虫子。错误一:在演示中,运行程序和命令行不会对相同的标记运行相同的测试。例如,对于mvn clean test-Dcucumber.options=“--tags@smoke,~@fire”-Dtest=TagsRunner命令行结果是所有四个场景都为mvn clean test运行-Dtest=TagsSmokeNotFireRunner结果只是功能1,场景1运行第二个bug将在项目上运行。我认为有两个include标记和一个exclude标记存在问题。根据最初的问题,我想这会忽略所有的标签。也许不是。只有一种方法可以确定:@TimFeltham非常感谢。希望编辑后的答案能澄清。@Prometheus我想你应该结束/接受你的开放式问题。