使用黄瓜特征文件的标签通过命令行执行 gradle 项目的黄瓜测试

Ang*_*sak 3 command-line cucumber gradle

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

我正在使用的命令:gradle test -DCucumber.options="-tags @tagname" 命令确实执行提到的标签。我已经尝试使用 gradle test-DCucumber.options="-tags @tagname"并且也gradle test没有发现这两个命令有任何区别。

gradle test -DCucumber.options="-tags @tagname" :执行这个文件中提到的 Runtest.java 和标签,不管我通过命令行传递什么特征标签,例如:tagename。

运行测试

@RunWith(Cucumber.class)
@CucumberOptions(features = "src\\test\\resources\\featurefiles", monochrome = true, plugin = {
        "com.eis.listeners.ExtentCucumberFormatter:" }, glue = {
                "com.adminconsole.stepdefs" },tags= {"@adminconsolelogin,@devicemanager,@certificatemanagement"} ,format = { "json:JsonReports/AdminConsole.json" })
Run Code Online (Sandbox Code Playgroud)

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

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

但是,-DCucumber.options="-tags @tagname"不能通过命令行工作。如果以下命令有误,任何人都可以为我提供正确的命令或策略或代码,我将不胜感激:gradle test -DCucumber.options="-tags @tagname"请纠正我。

小智 8

更新:对于 Cucumber 6,您需要提供以下声明:

test {
systemProperty "cucumber.filter.tags", System.getProperty("cucumber.filter.tags")

}
Run Code Online (Sandbox Code Playgroud)

您必须在 gradle JVM 和分叉的 JVM 之间桥接系统属性,才能使测试正常工作。从问题#1346

test { 
    systemProperty "cucumber.options", System.getProperty("cucumber.options") 
} 
Run Code Online (Sandbox Code Playgroud)

将其添加到您的 build.gradle 中,然后您可以在命令行上执行此操作:

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