通过命令行使用黄瓜功能文件的标记对Gradle项目执行黄瓜测试执行

时间:2019-05-30 10:30:53

标签: gradle command-line cucumber

我希望通过命令行使用特定功能标签对gradle项目执行黄瓜测试。

我正在使用的命令:gradle test -DCucumber.options =“-tags @tagname” 命令确实执行提到的标签。 我已经尝试过使用gradle test -DCucumber.options =“-tags @tagname”和gradle test。我在两个命令中都没有发现任何差异。

gradle test -DCucumber.options =“-tags @tagname”:执行Runtest.java和此文件中提到的标签,无论我通过命令行传递了哪些功能标签,例如:tagename。

Runtest.java

@RunWith(Cucumber.class) @CucumberOptions(features =“ src \ test \ resources \ featurefiles”,单色= true,插件= {         “ com.eis.listeners.ExtentCucumberFormatter:”},胶= {                 “ com.adminconsole.stepdefs”},tags = {“ @ adminconsolelogin,@ devicemanager,@ certificatemanagement”},format = {“ json:JsonReports / AdminConsole.json”})

所以在这里我提到了Runtest.java中的三个标签。 现在,我不想运行所有标签,而是想通过命令行运行特定的标签。 命令:gradle test -DCucumber.options =“-标签@adminconsolelogin”,但是-DCucumber.options =“-tags @adminconsolelogin”部分无效。

我正在寻找一种解决方案,无论Runtest.java中提到了什么标签,我们都可以运行特定的标签。更精确地通过命令行动态传递标签。

但是,-DCucumber.options =“-tags @tagname”无法通过命令行运行。 如果以下命令是错误的,任何人都可以为我提供正确的命令或策略或代码,请执行以下操作:gradle test -DCucumber.options =“-tags @tagname”,请纠正我。

2 个答案:

答案 0 :(得分:0)

您必须在gradle JVM和派生的JVM之间架桥系统,才能进行测试。从问题#1346

 test { 
    systemProperty "cucumber.options", System.getProperty("cucumber.options") 
} 

将其添加到build.gradle中,然后可以在命令行上完成该操作:

gradle test -Dcucumber.options="-tags @tagname"

答案 1 :(得分:0)

您需要添加此

test { 
systemProperty "cucumber.options", System.getProperty("cucumber.options") 

}

CLI命令将

gradle test -Dcucumber.options="--tags @tagName"