TestNG ist ein leistungsstarkes Testframework, mit dem Entwickler flexible Tests mit Gruppierungs-, Sequenzierungs- und datengesteuerten Funktionen schreiben können. Und das leistungsstärkste Feature ist meiner Meinung nach eine Reihe von Listenern, die sich in TestNG einbinden, um die Testfälle besser steuern oder die Berichterstellung erweitern zu können usw.
Mit dem TestNG Eclipse-Plugin können Sie TestNG-Testfälle in der Eclipse-IDE ausführen und debuggen.
In diesem Artikel werden einige Tipps zum effizienten Erstellen und Ausführen von Tests mit dem TestNG Eclipse-Plugin gegeben.
Installation
Das TestNG for Eclipse-Plugin ist auf dem Eclipse Marketplace verfügbar.
TestNG Eclipse Plugin verwenden
Tests erstellen
Wenn Sie die TestNG-Testfälle erstellen, können Ihnen die vordefinierten Vorlagen definitiv dabei helfen, effizienter zu sein. Um eine Testmethode zu erstellen, geben Sie im Editor test
ein, drücken Sie dann den Hotkey Content Assist (in meinem Fall ‚Alt +/‘) und wählen Sie die Vorlage wie folgt aus:
Hinweis: Im TestNG Eclipse Plugin 6.10.1 werden weitere Vorlagen verfügbar sein, z. B. ’setup‘, ‚Teardown‘ usw.
Run / Debug-Tests
Lauching-Tests
Es gibt mehrere Möglichkeiten, Tests zu starten, was sehr praktisch ist. Hier sind die verschiedenen Möglichkeiten, dies zu tun:
- Klicken Sie mit der rechten Maustaste auf die Testklasse oder den Quellcode-Editor, um diesen Test auszuführen.
- Rechtsklick auf das Paket, um alle Tests unter dem Paket auszuführen.
- Rechtsklick auf die XML-Datei der TestNG Suite, um die benutzerdefinierte Testsuite auszuführen.
- Oder gehen Sie zu Konfiguration ausführen, um die Startkonfiguration besser steuern zu können, z. B. die auszuführende Testgruppe; Übergeben Sie Systemeigenschaften an den Laufzeittestprozess usw.
Fehlgeschlagene Tests erneut ausführen
Wenn Sie mehrere fehlgeschlagene Tests haben, können Sie die fehlgeschlagenen Tests nach dem Reparieren Ihres Testcodes insgesamt erneut ausführen, um Zeit zu sparen:
Maven Integration
Wenn Ihr Projekt von Maven verwaltet wird, möchten Sie möglicherweise maven-surefire-plugin
oder maven-failsafe-plugin
konfigurieren, um den Testfall auszuführen. Angenommen, Sie übergeben die folgenden JVM-Argumente und Systemeigenschaften an den Laufzeittestprozess:
<artifactId>maven-surefire-plugin</artifactId><configuration> <suiteXmlFiles> <suiteXmlFile>test-suite/testng.xml</suiteXmlFile> </suiteXmlFiles> <argLine>-javaagent:${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar -Xmx1024m -XX:MaxPermSize=512m -Xms256m -Xmx1024m -XX:PermSize=128m -Dversion=${project.version} </argLine> <systemPropertyVariables> <foo>${foo.value}</foo> </systemPropertyVariables> <environmentVariables> <bar>${bar.value}</bar> </environmentVariables></configuration>
Die Tests laufen gut mit Maven cli, mvn -e test
, könnten aber mit jeder TestNG Eclipse Plugin-Version vor 6.9.10 fehlschlagen. In diesem Fall müssten Sie die Systemeigenschaften manuell kopieren, um die Konfiguration für jeden Test zu starten.
Glücklicherweise kann das TestNG Eclipse-Plugin heute die Konfiguration von maven-surefire/failsafe-plugin
analysieren und automatisch an die Startkonfiguration anhängen. Auf diese Weise wird das Verhalten so nah wie möglich an der Befehlszeile ausgeführt. Weitere Informationen finden Sie in der offiziellen Anleitung.
Hinweis: Die entsprechende Funktion für die Gradle-Integration mit Eclipse Buildship ist in Planung.
TestNG Eclipse Plugin Intern
Es ist hilfreich, den Kern des TestNG Eclipse Plugins zu verstehen, insbesondere wenn Sie Probleme bei der Verwendung haben.
Wenn ein Test ausgeführt wird, muss das Plugin die Testergebnisse aus dem Laufzeittestprozess abrufen und in Echtzeit in der Ansicht anzeigen.
Die Kommunikation zwischen Plugin und dem Laufzeittestprozess erfolgt über Socket. Das Plugin startet zuerst den Socket-Server. Während des Laufzeittestprozesses gibt es eine Reihe von Listenern, die sich in die TestNG-Laufzeit einbinden und die Testergebnisse über den Socket an das Plugin zurücksenden.
Die Socket-Kommunikationsfunktionalitäten werden im Projekt ‚testng-remote‘ auf GitHub gepflegt.
Letzte Worte
Wir verbessern ständig die Erfahrung des TestNG Eclipse Plugins, bitte senden Sie Ihr Feedback und Ihre Ideen zum GitHub-Projekt hier.
Über den Autor
Nick Tan
Ebates
- GitHub