at være effektiv med TestNG Eclipse Plugin

TestNG er en kraftfuld testramme, der gør det muligt for udviklere at skrive fleksible tests med gruppering, sekventering og datadrevne funktioner; det gør det endda nemt at skrive parallelle tests. Og den mest kraftfulde funktion, efter min mening, er et sæt lyttere, der tilslutter sig TestNG, hvilket gør det muligt bedre at kontrollere testsagerne, eller øge rapporteringen, etc.

TestNG Eclipse plugin giver dig mulighed for at køre og debug TestNG test cases inden Eclipse IDE.

denne artikel deler nogle tips om, hvordan man kan være effektiv, når authoring og kører tests med TestNG Eclipse Plugin.

Installation

TestNG til Eclipse Plugin er tilgængelig på Eclipse Marketplace, følg installationsvejledningen.

brug TestNG Eclipse Plugin

Authoring Tests

når du authoring TestNG test cases, kan de foruddefinerede skabeloner helt sikkert hjælpe dig være mere effektiv. For at oprette en testmetode skal du skrive test i editoren og derefter trykke på Hot-tasten Content Assist (‘Alt+ /’ i mit tilfælde), Vælg skabelonen som nedenfor:

Bemærk: Der vil være flere skabeloner tilgængelige i TestNG Eclipse Plugin 6.10.1, f.eks.

Kør / Debug test

Lauching test

der er flere måder at starte test på, hvilket er meget praktisk. Her er de forskellige måder, det kan gøres på:

  • Højreklik på testklassen eller kildeditoren for at køre den test.
  • Højreklik på pakken for at køre alle testene under pakken.
  • Højreklik på filen TestNG suite for at køre den brugerdefinerede testpakke.
  • eller gå til Kør konfiguration for bedre kontrol på startkonfigurationen, for eksempel testgruppen, der skal køres; pass Systemegenskaber til runtime testprocessen osv.

re-run mislykkede Tests

hvis du har flere mislykkede tests, efter at du har rettet din testkode, kan du køre de mislykkede tests helt igen for at spare tid:

Maven Integration

hvis dit projekt administreres Maven, kan du konfigurere maven-surefire-plugin eller maven-failsafe-plugin til at køre testsagen. Lad os sige, at du videregiver følgende JVM-argumenter og Systemegenskaber til runtime-testprocessen:

<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>

testene kører godt med Maven cli, mvn -e test, men kunne mislykkes med enhver TestNG Eclipse Plugin version før 6.9.10. I så fald skal du manuelt kopiere systemegenskaberne for at starte konfigurationen for hver test.

heldigvis kan TestNG Eclipse-Plugin i dag analysere konfigurationen af maven-surefire/failsafe-plugin, automatisk tilføje dem til Lanceringskonfigurationen. På denne måde gør det også adfærden så tæt som muligt på at køre på kommandolinjen. For flere detaljer henvises til den officielle vejledning.

Bemærk: den tilsvarende funktion til Gradle integration med Eclipse Buildship er under planlægning, Du kan spore billetten her.

TestNG Eclipse Plugin intern

det er nyttigt at forstå kernen i TestNG Eclipse plugin, især når du har problemer med at bruge det.

når en test kører, plugin har brug for at få testresultaterne fra runtime test proces og vise dem på visningen i realtid.

kommunikationen mellem plugin og runtime testprocessen sker via socket. Pluginet starter først socket-serveren. Mens det er på runtime testprocessen, er der et sæt lyttere, der tilslutter sig TestNG runtime og sender testresultaterne tilbage til plugin via socket.

sokkelkommunikationsfunktionerne opretholdes i projektet ‘testng-remote’ på GitHub.

afsluttende ord

vi fortsætter med at forbedre oplevelsen af TestNG Eclipse Plugin, send venligst din feedback og ideer om GitHub-projektet her.

om forfatteren

Tan

Nick Tan
Ebates

  • GitHub
  • LinkedIn

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.