如何使用@tags在黄瓜框架中从testrunner类文件运行多个标签?

时间:2016-04-22 07:20:57

标签: java selenium selenium-webdriver cucumber-junit cucumber-java

@RunWith(Cucumber.class)
@CucumberOptions( plugin = {"pretty","html:target/html/automation"},
                features = {"resource/***.feature"},
                glue={},
                tags={"@login","@Products"}
        )

这是我的功能文件

@login

功能:登录到应用程序

场景:这是验证应用程序是否已成功记录     鉴于导航到松下应用程序     然后验证应用程序的标题     然后注销应用程序

@Products

功能:登录到应用程序

背景:用户应该导航到应用程序的主页

鉴于用户使用有效凭据登录主页

单击主页上的目录链接

场景:验证是否能够在产品页面中创建十个以上的产品

并检查目录的子菜单是否显示在标题

并查看我的产品目录表

5 个答案:

答案 0 :(得分:3)

对于多个标签,Cucumber 使用逻辑 AND 和逻辑 OR。 例如,以下对我来说效果很好。

@RunWith(Cucumber.class)
@CucumberOptions(plugin = {"pretty", "html:target/cucumber-report.html"},
        features= "Features",
        glue= {"com.cucumber.stepdefinition"},
        tags= "@RegressionTest or @SmokeTest"
        )
public class TestRunner {
}

答案 1 :(得分:2)

这是一个样本黄瓜Junit跑步者模板:

@RunWith(Cucumber.class)
@CucumberOptions(features = { "classpath:features/*.feature" }, glue = "packagename(s) or class name(s) containing the step definitions", plugin = {
        "pretty:target/prettyReport.txt", "html:target/cucumber", "json:target/cucumber.json", "rerun:target/rerun.txt",
        "junit:target/junit-report.xml", "testng:target/testng-output.xml" }, monochrome = true, tags = {"~@Ignore"})
public class FeatureRunnerTest {

}

希望这有帮助!!
编辑:"〜" symbol ...用于否定..运行所有功能,除了标有Ignore标签的一个..另一方面,你可以指定标签属性中的标签列表,以逗号分开运行那些测试

答案 2 :(得分:1)

见下面的多标签形式黄瓜倒酒器的实现:

<块引用>

@CucumberOptions( features = "src/test/java/features", 胶水=“步骤定义”, 标签 = "@Test_Working_Calendar,@Test_email_tempalte", 插件 = {“漂亮”,“html:目标/黄瓜” ,"json:target/cucumber.json" ,"junit:target/cukes.xml" ,"com.cucumber.listener.ExtentCucumberFormatter:target/cucumber-reports/report.html"})

答案 3 :(得分:0)

@Rajesh Saini,感谢您的投入。我在标签之间使用了“或”,它起作用了,但“和”/“与”不起作用。你能用“and”/“AND”分​​享你的标签吗

什么有效:

    tags = "@tag1 or @tag2",
    features = {"src/test/resources/features"},
    glue= {"pathToYour-1.stepdefinitions",
            "pathToYour-2.stepdefinitions",
            "pathToYour-2.stepdefinitions",
    // By the way you can have multiple paths if your steps are
    // being used in other projects too.
    }

什么不起作用:

    tags = "@tag1 and @tag2",
    // or tags = "@tag1 AND @tag2",
    features = {"src/test/resources/features"},
    glue= {"pathToYour-1.stepdefinitions",
            "pathToYour-2.stepdefinitions",
            "pathToYour-2.stepdefinitions",
    }

答案 4 :(得分:-1)

@CucumberOptions(
     /* tags = {"@SmokeTest","@Register"},*/
     features = "src/test/Features",
     glue = "",
     plugin = { "pretty","json:target/stepdefinition.json"})

我评论了标签行,测试用例按顺序运行。试试这个,让我知道。