2012-04-30 12 views
6

Ist es möglich, eine vordefinierte XML-Suite von der Befehlszeile über Maven ausführen?TestNG todsichere, run Suite mit maven Befehlszeile

Ich kann eine Klasse oder einen bestimmten Test ausführen. Aber ich kann keine Suite führen.

Hier ist, was ich von der Kommandozeile leite: ->

mvn -Dtest=TestCircle#mytest -Denvironment=test -Dbrowser=firefox -DscreenShotDirectory=/Users/jeremy/temp test 

Ich habe eine Suite definiert, die schön durch IntelliJ läuft, aber ich bin nicht sicher, wie die Suite aufzurufen. XML-Datei.

Oder, zum Beispiel, nachdem die Tests ausgeführt wurden, erstellt testng eine testng-failed-Datei, die eingerichtet ist, alle fehlgeschlagenen Tests erneut auszuführen.

Mit MVN, wie würde ich diese Testsuite starten.

+0

Ich fand die Antwort hier: http://stackoverflow.com/questions/11762801/run-junit-suite-using-maven-command – Philippe

Antwort

5

Normalerweise brauchen Sie nichts besonderes in Bezug auf TestNG. Verwenden Sie einfach die Maven-todsichere-Plugin:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <version>2.12</version> 
    </plugin> 

und basiert auf, dass alle Tests, die ausgeführt werden soll korrekt kommentiert werden. Ah natürlich müssen Sie eine Abhängigkeit zu TestNG wie folgt aus:

<dependency> 
    <groupId>org.testng</groupId> 
    <artifactId>testng</artifactId> 
    <version>6.5.2</version> 
    <scope>test</scope> 
</dependency> 

Normalerweise würde ich nicht Test-Suites erstellen mehr, führen diese einen Punkt, die Sie pflegen müssen, die oft usw. verpasst aktualisieren nur Annotationen verwenden.

Wenn Sie eine bestimmte Testsuite ausführen müssen, definieren Sie einfach eine Datei testng.xml in src/test/resources und verbessern Sie die Konfiguration der maven-surefire plugin entsprechend.

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <version>2.12</version> 
    <configuration> 
     <suiteXmlFiles> 
     <suiteXmlFile>src/test/resources/testng.xml</suiteXmlFile> 
     </suiteXmlFiles> 
    </configuration> 
    </plugin> 
4
<build> 
<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <version>2.12</version> 
    <configuration> 
     <suiteXmlFiles> 
     <suiteXmlFile>src/test/resources/testng.xml</suiteXmlFile> 
     </suiteXmlFiles> 
    </configuration> 
    </plugin> 
</build> 

es für mich gearbeitet.

+0

Ich habe den gleichen Weg, aber leider hat es nicht funktioniert –

14

Diese Antwort gab mir, was ich suchte, nämlich die Fähigkeit, in der Befehlszeile den Namen der Suite, die ich laufen soll passieren:

http://www.vazzolla.com/2013/03/how-to-select-which-testng-suites-to-run-in-maven-surefire-plugin/

Auf den Punkt gebracht, fügen Sie Folgendes zu die maven-Surfire-Plugin Strophe Ihrer pom.xml:

<suiteXmlFiles> 
    <suiteXmlFile>${suiteXmlFile}</suiteXmlFile> 
</suiteXmlFiles> 

Dann können Sie die gewünschte testng Suite xML-Datei in der Befehlszeile angeben:

mvn clean install test -DsuiteXmlFile=testngSuite.xml