Ich habe eine Feder-basierte Groovy-Anwendung, die als "Framework" für den TestNG-Tests verwendet wird.Access Instanz der Klasse in TestNG in groovy laufen
Hier ist ein Teil meiner Anwendung
@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
}
}
wie
Mein Beispiel Testdateiclass T1{
public String currentMethod
@Test
public void test() {
//execution
}
@Test
public void test2(){
//execution
throw new Exception()
}
}
Es funktioniert gut, wie es ist, aber ich wollte implementieren einige zusätzliche Informationen zu können, schaut überprüfen welche Methode läuft gerade durch Hinzufügen von etwas mehr Code
Allerdings bin ich n ot der Lage, die Instanz als
instance = groovyClass.newInstance()
schafft eine Instanz und
testNG.run()
schafft eine andere zuzugreifen, die durch Drucken einige mesages in construcor bestätigt werden kann.
Gibt es eine Idee, wie kann ich auf TestNG zugreifen oder wie man eine bestehende Instanz in TestNG Runner übergibt? Jedes Mal, wenn ich versuche, auf localhost zuzugreifen: 8080/status gibt es null zurück.