我正在使用Gradle和TestNG。我有这个build.gradle:
useTestNG() {
useDefaultListeners = true
suites "src/test/resources/tests1.xml"
suites "src/test/resources/tests2.xml"
}
}
如何从命令行中仅运行tests1.xml?
答案 0 :(得分:2)
您可以使用项目属性来添加/更改/ ...不同的套件。在你的例子中,你可能正在运行
gradlew test
运行两个套件。如果您在build.gradle中修改测试任务
def suite1 = project.hasProperty("suite1")
def suite2 = project.hasProperty("suite2")
test {
useTestNG() {
dependsOn cleanTest
useDefaultListeners = true
if(suite1) {
suites "src/test/resources/simpleSuite.xml"
}
if(suite2) {
suites "src/test/resources/advancedSuite.xml"
}
}
}
你可以这样选择套房
gradlew test -Psuite1
gradlew test -Psuite2
gradlew test -Psuite1 -Psuite2
答案 1 :(得分:1)
您可以使用默认值指定变量let 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
}
}
参考qaf gradle build file
如果要通过命令行
gradlew test -PsuiteFile=test.xml
答案 2 :(得分:0)
在build.gradle中更新:
test {
useTestNG() {
if (project.hasProperty('suite1')) { suites './src/test/suite1.xml' }
if (project.hasProperty('suite2')) { suites './src/test/suite2.xml' }
}
}
使用命令gradlew test -Psuite1
运行suite1,并同样为suite2更新。