2016-07-07 14 views
0

Wie funktioniert TestNG, wenn es nach seinen Testklassen sucht?Wie sucht TestNG nach Testklassen?

Ich habe ein separates Projekt von meinem TestNG-Projekt mit JavaFX erstellt, um eine GUI zu erstellen. Wenn die GUI ausgeführt wird, können Sie eine XML-Datei auswählen und dann wird der Pfad zu testNG XML in einer Variablen gespeichert.

Wenn ich den folgenden Code ausführen:

String xmlFileName = selectedFile.getAbsolutePath(); 

TestNG testng = new TestNG(); 
List<String> testFilesList = new ArrayList<String>(); 

testFilesList.add(xmlFileName); //test suite resides in the working directory's root folder 
testng.setTestSuites(testFilesList); //you can addd multiple suites either here by adding multiple files or include all suites needed in the testng.xml file 
testng.setUseDefaultListeners(false); 
testng.addListener(htmlRep); 
testng.run(); 

Ich erhalte eine Fehlermeldung, dass es nicht meine Testklassen innerhalb des XML finden.

[TestNG] [ERROR]

Kann nicht finden Klasse in Classpath: com.emc.qe.u360.tests.LogoutTests

entschied ich mich dann eine Java-Klasse in meinem TestNG zu machen Projekt, und kopieren Sie den Code über und es gibt immer noch die gleiche Fehlermeldung.

Wo sucht TestNG nach den Testklassen, wenn der obige Code ausgeführt wird?

Welcher Unterschied besteht darin, dass der obige Code das XML von Eclipse selbst manuell ausführt? Der Code scheint zu funktionieren, da ich feststellen kann, ob der Code zum Ausführen des XML-Codes fehlerhaft oder nicht funktionierend ist, würde er mir diesen Fehler nicht geben können, da er nicht in der Lage wäre zu bestimmen, wofür er angegeben ist das XML.

Jede Hilfe wäre dankbar, danke.

EDIT: Nur für Hintergrundinformationen, derzeit verwende ich Jenkins zum Ausführen der Tests, was ich versuche mit der GUI zu tun, ist eine alternative Lösung zum Ausführen der Tests außerhalb des Projekts/Framework, das kann universell einsetzbar, kann ein Benutzer einfach sein XML auswählen und dann werden die Tests ausgeführt.

+0

Ich versuche etwas ähnliches zu tun. Wenn ich mehrere TestNG-Testklassen an meinen Spring-Web-App-Testprovider übergebe, stürzt die ganze Suite mit TestNGException ab, wenn nur einer von ihnen einen fehlerhaften kanonischen Klassennamen hat dann fahre fort. Ich denke, ich werde wahrscheinlich die Klassennamen überprüfen müssen, bevor ich die Suite zusammenstelle und die Ausnahme früher abfange. – djangofan

+0

Hey @djangofan. Ich glaube nicht, dass ich Ihre Frage lösen müsste, da ich mich in den frühen Phasen meiner Entwicklung befinde. Wenn du einen privaten Chat starten und diskutieren oder Projekte machen möchtest, könnte etwas, das ich getan habe, dir helfen oder davon profitieren? – colin

+0

ist in Ordnung. Ich brauche keine Hilfe. Ich habe es erwähnt, weil es sich anhört, als ob Sie ein ähnliches Problem mit Ihrem FX-Test-Runner haben könnten. – djangofan

Antwort

0

Es ist konfigurierbar, wenn Sie den Maven Surefire oder den Gradle TestNG Runner verwenden, aber standardmäßig denke ich, dass TestNG in src/test/java nach Ihren Klassennamen sucht. Darüber hinaus denke ich, wenn Sie TestNG aus Code ausführen, als eigenständiges Ausführen, können Sie die Pfadbasis anpassen, wo nach Klassen sucht.

Verwandte Themen