0
我有一個基於spring的groovy應用程序,用作運行TestNG測試的「框架」。TestNG中的類的訪問實例在groovy中運行
這裏是我的應用程序的一部分
@RestController
class Framework{
def instance
@RequestMapping("/test/{name}")
@ResponseBody
String home(@PathVariable String name) {
def sourceFile = new File("./tests/${name}/test.groovy")
groovyClass = new GroovyClassLoader(getClass().getClassLoader()).parseClass(sourceFile)
instance = groovyClass.newInstance()
def testNG = new TestNG()
testNG.setOutputDirectory("./results/${name}")
XmlSuite suite = new XmlSuite()
suite.setName(name)
XmlTest test = new XmlTest(suite)
test.setXmlClasses([new XmlClass(groovyClass)])
testNG.setXmlSuites([suite])
testNG.run()
def resultFile = new File("./results/${name}/emailable-report.html")
return resultFile.text
}
@RequestMapping("/status")
public String getStatus(){
return instance.currentMethod
}
}
我的示例測試文件看起來像
class T1{
public String currentMethod
@Test
public void test() {
//execution
}
@Test
public void test2(){
//execution
throw new Exception()
}
}
它正常工作,因爲它是,但我想實現一些附加信息,能夠檢查哪種方法當前通過添加一些代碼來運行
但是我n OT能夠訪問該實例作爲
instance = groovyClass.newInstance()
創建一個實例,並
testNG.run()
創建另一個可以通過在construcor打印一些mesages確認。
ctor
ctor
[TestNG] Running:
Command line suite
===============================================
Total tests run: 2, Failures: 1, Skips: 0
===============================================
任何想法,我怎麼能訪問istance通過TestNG的或如何建立比現有的實例傳遞到TestNG的亞軍? 每次我嘗試訪問本地主機:8080 /狀態,它都會返回null。