从命令行使用 Gradle 运行特定的 TestNG XML 测试套件?

Gud*_*dzo 6 testng gradle

我正在使用 Gradle 和 TestNG。我有这个 build.gradle:

useTestNG() {
        useDefaultListeners = true
        suites "src/test/resources/tests1.xml"
        suites "src/test/resources/tests2.xml"
   }
}
Run Code Online (Sandbox Code Playgroud)

例如,如何从命令行仅运行tests1.xml?

小智 8

您可以使用项目属性来添加/更改/...不同的套件。在你的例子中你可能正在运行

gradlew test
Run Code Online (Sandbox Code Playgroud)

运行两个套件。如果您修改 build.gradle 中的测试任务

gradlew test
Run Code Online (Sandbox Code Playgroud)

您可以通过这种方式选择套房

gradlew test -Psuite1
gradlew test -Psuite2
gradlew test -Psuite1 -Psuite2
Run Code Online (Sandbox Code Playgroud)


use*_*594 5

您可以指定变量(例如使用suiteFile默认值)并在 testNG 部分中使用它。例如:

ext{
    
    set suiteFile, default is 'testrun_config.xml'
    if (!project.hasProperty('suiteFile')) {
        suiteFile = 'testrun_config.xml'
    }
}

test {
    useTestNG() {
        dependsOn cleanTest
        useDefaultListeners = true
        suites "src/test/resources/"+suiteFile
       
    }
} 
Run Code Online (Sandbox Code Playgroud)

参考 qaf gradle 构建文件

如果你想通过命令行

gradlew test -PsuiteFile=test.xml
Run Code Online (Sandbox Code Playgroud)