för att vara effektiv med TestNG Eclipse Plugin

TestNG är ett kraftfullt testramverk som gör det möjligt för utvecklare att skriva flexibla tester med gruppering, sekvensering och datadrivna funktioner; det gör det även enkelt att skriva parallella tester. Och den mest kraftfulla funktionen är enligt min mening en uppsättning lyssnare som hakar in i TestNG, vilket gör det möjligt att bättre kontrollera testfallen eller öka rapporteringen etc.

TestNG Eclipse plugin ger dig möjlighet att köra och felsöka TestNG testfall inom Eclipse IDE.

den här artikeln delar några tips om hur du kan vara effektiv när du redigerar och kör test med TestNG Eclipse Plugin.

Installation

TestNG för Eclipse Plugin finns på Eclipse Marketplace, följ installationsguiden.

använd TestNG Eclipse Plugin

Authoring Tests

när du författar TestNG-testfallen kan de fördefinierade mallarna definitivt hjälpa dig att bli effektivare. För att skapa en testmetod, skriv test i redigeraren och tryck sedan på snabbtangenten Content Assist (’Alt + /’ i mitt fall), välj mallen enligt nedan:

Obs: Det kommer att finnas fler mallar tillgängliga i TestNG Eclipse Plugin 6.10.1, t.ex. ’setup’, ’teardown’, etc.

Run/Debug Tests

Lauching Tests

det finns flera sätt att starta test, vilket är mycket praktiskt. Här är de olika sätten det kan göras:

  • högerklicka på testklassen eller källredigeraren för att köra det testet.
  • högerklicka på paketet för att köra alla tester under paketet.
  • högerklicka på TestNG suite xml-filen för att köra den anpassade testsviten.
  • eller gå till körkonfiguration för bättre kontroll på startkonfigurationen, till exempel testgruppen som ska köras; skicka systemegenskaper till runtime-testprocessen etc.

kör om misslyckade tester

om du har flera misslyckade tester, efter att du har fixat din testkod, kan du köra om de misslyckade testerna helt och hållet för att spara tid:

Maven Integration

om ditt projekt hanteras av Maven kanske du vill konfigurera maven-surefire-plugin eller maven-failsafe-plugin för att köra testfallet. Låt oss säga att du skickar följande JVM-argument och systemegenskaper till 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>

testerna går bra med Maven cli, mvn -e test, men kan misslyckas med någon TestNG Eclipse Plugin-version före 6.9.10. I så fall måste du manuellt kopiera systemegenskaperna för att starta konfigurationen för varje test.

lyckligtvis kan TestNG Eclipse-Plugin idag analysera konfigurationen av maven-surefire/failsafe-plugin, automatiskt lägga till dem i Lanseringskonfigurationen. På så sätt gör det också beteendet så nära som möjligt att köra på kommandoraden. För mer information, se den officiella guiden.

Obs: motsvarande funktion för Gradle integration med Eclipse Buildship är under planering, Du kan spåra biljetten här.

TestNG Eclipse Plugin Intern

det är bra att förstå kärnan i TestNG Eclipse plugin, särskilt när du har problem med att använda den.

när ett test körs, måste plugin för att få testresultaten från runtime testprocessen och visa dem på vyn i realtid.

kommunikationen mellan plugin och runtime testprocessen görs via socket. Plugin startar först socket-servern. Även om det är på runtime testprocessen finns det en uppsättning lyssnare som krok i TestNG runtime och skicka testresultaten tillbaka till plugin via socket.

socket – kommunikationsfunktionerna upprätthålls i projektet ’testng-remote’ på GitHub.

Slutord

vi fortsätter att förbättra upplevelsen av TestNG Eclipse Plugin, skicka dina synpunkter och förslag på GitHub projektet här.

om författaren

XuQing Tan

Nick Tan
Ebates

  • GitHub
  • LinkedIn

Lämna ett svar

Din e-postadress kommer inte publiceras.