gradle中的useTestNG不会选择通过项目扩展属性传递的动态套件

时间:2014-04-21 15:29:21

标签: gradle

我已经定义了一个测试任务,它使用TestNG来运行测试用例,并动态传递一个testNG套件文件列表,以便运行它。但是它似乎没有动态选择文件列表。

task runTestNG(type: Test) {
doFirst {
if(project(':testNG').hasProperty("testJerseyFiles")) {
  ext.ngFiles = project.property("testJerseyFiles")
  List testFiles = ngFiles as List
  if(testFiles != null && testFiles.size() != 0 ) {
    println "++++++++If : runTestNG++++++++++++++++++++++++++++"
    testFiles.each { test ->
      println "${test}"
    }
  }
} else {
  println "++++++++Else : runTestNG++++++++++++++++++++++++++++"
}
}
useTestNG() {
if(project(':testNG').hasProperty("testJerseyFiles")) {
  ext.ngFiles = project.property("testJerseyFiles")
  List testFiles = ngFiles as List
    if(testFiles != null && testFiles.size() != 0 ) {
      listeners << 'org.testng.reporters.XMLReporter'
      ignoreFailures = true
      testFiles.each { test ->
        println "******* ${test}  ***************"
        suites new File ("${test}")
        //options.suites(new File ("${test}"))
      }
    }
  } else {
    // println "++++++++Else : runTestNG++++++++++++++++++++++++++++"
  }
}

当我从另一个设置属性项目的任务(':testNG')运行此测试时。\ text.testJerseyFiles比我得到以下

++++++++If : runTestNG++++++++++++++++++++++++++++
output/suiteDir/Jersey_setNo1.xml
Running test: test method init(test1.Test1)

但是setNo1.xml有一个完全不同的类的列表。它似乎没有在“useTestNG”套件选项中选择文件,但它显然是在“doFirst”闭包中打印出变量。不确定我做错了什么。

我做的研究越多,似乎useTestNG的suite参数是在配置时设置的,因为project.ext.property是在执行时设置的,所以它总是找到“.hasProperty”为空并跳过如果条款。这导致它无论在类路径中找到什么都会进入测试列表。

有什么方法可以让这个套件动态地获取套件列表?

0 个答案:

没有答案