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

标签 gradle command-line cucumber

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

我正在使用的命令: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" })

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

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

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

最佳答案

更新:对于 Cucumber 6,您需要提供以下语句:

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

}
您必须在 gradle JVM 和 fork 的 JVM 之间桥接系统属性,才能使测试正常工作。从问题 #1346 :
test { 
    systemProperty "cucumber.options", System.getProperty("cucumber.options") 
} 
将其添加到您的 build.gradle 中,然后您可以在命令行上执行此操作:gradle test -Dcucumber.options="-tags @tagname"

关于gradle - 使用 cucumber 特征文件的标签通过命令行执行 gradle 项目的 cucumber 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56376470/

相关文章:

windows - 如何使用 ImageMagick 批量转换 pdf 并对流程进行基准测试?

command-line - 在 Windows 7 中使用命令提示符的消息

android - Gradle-无法解决

jar - 如何使用Android Studio生成jar库(Gradle)

java - 如何根据 Javadoc 警告使 gradle 构建失败

java - cucumber Java : Does not recognize a Long data type

testing - cucumber 之前和之后的钩子(Hook)在哪里

java - Gradle Eclipse 插件

java - 如何在命令行中提供java中类的路径?

ios - Frank 无法触摸带有标签的 textField