【问题标题】:How do I tell cucumber to execute feature files taking into consideration both feature tags as well the scenarios tags?我如何告诉黄瓜执行功能文件同时考虑功能标签和场景标签?
【发布时间】:2018-05-25 02:37:06
【问题描述】:

这是我的问题。 我在功能级别上有一个@env 标签来识别要在哪个环境上运行,在场景级别上有一个@current 标签来识别要运行的环境。

功能文件放置在不同的文件夹下(取决于环境),我使用@Cucumberoptions 来设置标签特定的功能文件路径。

到这里为止一切顺利。

但是当我运行功能文件时,它会选择带有@current 标签的所有场景,而与功能文件标签无关。 对于 E.G.我在 cucumber 选项中只添加了@Env1 和@Env2,但它也选择了@Env3 功能并运行它们。如何停止 cucumber 运行 @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>

我们将不胜感激。

谢谢。

【问题讨论】:

    标签: java cucumber


    【解决方案1】:

    需要在标签过滤器表达式中使用 AND、OR 组合来完成这项工作。不太清楚如何从 Ant 运行 Cucumber,因此在 cucumberoptions 和 cli 中包含标签过滤器。

    对于黄瓜选项 -> tags={"@Env1,@Env2","@Current"}

    对于 CLI -> --tags @Env1,@Env2 --tags @Current

    对于蚂蚁 ->

    <arg value="--tags" />
    <arg value="@Env1,@Env2"/>
    <arg value="--tags" />
    <arg value="@Current" />
    

    【讨论】:

    • 根据您使用的 Cucumber 版本,您可以使用Tag Expressions,因此您将使用“and”添加一组标签,而不是逗号分隔。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-16
    相关资源
    最近更新 更多