我正在尝试使用下面的命令与Maven运行Cucumber场景:
mvn clean install -Pgeneric-runner -Dmaven.test.failure。忽视"-Dcucumber。Options =——tags @tag1 and not @tag2'
上述Maven命令失败。然而,当我删除"not @tag2"从命令中,它执行得很好,没有任何失败。
。是否有可能修复上述maven命令,以便它可以执行具有"@tag1"并排除任何带有"@tag2"的场景。
请求援助。提前谢谢你。
所以您使用的是相当旧的Cucumber版本。关于它的很多事情都很奇怪。例如,cucumber.options
接受命令行参数。
这意味着:
'-Dcucumber.options=--tags @tag1 and not @tag2'
被解释为命令行选项:
--tags @tag1 and not @tag2
读作:
--tags <the tag you want to run> <feature file> <feature file> <feature file>
所以你必须告诉Cucumber标签表达式属于一个组合:
--tags "@tag1 and not @tag2"
然后嵌套到另一个命令行参数中:
'-Dcucumber.options=--tags "@tag1 and not @tag2"'
这可能会起作用。这取决于你的shell如何处理引号。
你应该升级。然后你可以用-Dcucumber.filter.tags=tag1 and not @tag2
,它的行为正常。你可以在这里找到帮助你升级的发行说明:https://github.com/cucumber/cucumber-jvm/tree/main/release-notes