这是我的问题。 我在功能级别上有一个@env标记来识别要运行的env,以及在场景级别上的@current标记来识别要运行的那个。
功能文件放在不同的文件夹下(取决于env),我使用了@Cucumberoptions来设置标记特定的功能文件路径。
直到这里都很好。
但是当我运行功能文件时,无论功能文件标记如何,它都会使用@current标记获取所有方案。 对于E.G.我在黄瓜选项中只添加了@ Env1和@ Env2,但它也获得了@ Env3功能并运行它们。如何阻止黄瓜运行@cucumberOptions中未提及的功能文件?
这是ANT目标代码:
<java classname="cucumber.api.cli.Main" fork="true" failonerror="false" resultproperty="cucumber.exitstatus">
<sysproperty key="log4j.configuration" value="file:///${basedir}/log4j.conf"/>
<classpath refid="classpath"/>
<arg value="--monochrome"/>
<arg value="--format"/>
<arg value="junit:target/cucumber-junit-report/allcukes.xml"/>
<arg value="--format"/>
<arg value="pretty"/>
<arg value="--format"/>
<arg value="html:target/cucumber-html-report"/>
<arg value="--glue"/>
<arg value="src.test.cucumber.userlevel"/>
<arg value="features"/>
<arg value="--tags" />
<arg value="@current"/>
<arg value="--tags" />
<arg value="~@obsolete" />
<arg value="--tags" />
<arg value="~@business" />
</java>
任何回复都将受到赞赏。
感谢。
答案 0 :(得分:1)
需要在标记过滤器表达式中使用AND,OR组合才能使其工作。不太确定如何从Ant运行Cucumber,包括在cucumberoptions和cli中使用标签过滤器。
对于cucoptions - &gt; tags={"@Env1,@Env2","@Current"}
对于CLI - &gt; --tags @Env1,@Env2 --tags @Current
对于Ant - &gt;
<arg value="--tags" />
<arg value="@Env1,@Env2"/>
<arg value="--tags" />
<arg value="@Current" />