如何在考虑功能标签和场景标签的情况下告诉黄瓜执行功能文件?

时间:2018-05-25 02:37:07

标签: java cucumber

这是我的问题。 我在功能级别上有一个@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>

任何回复都将受到赞赏。

感谢。

1 个答案:

答案 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" />