2012-04-30 17 views
6

È possibile eseguire una suite di xml predefinita dalla riga di comando tramite Maven?TestNG surefire, esegui suite con riga di comando maven

Sono in grado di eseguire una classe o un test particolare. Ma non sono in grado di gestire una suite.

Ecco quello che sto facendo funzionare da linea di comando: ->

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

io ho definito una suite, che corre attraverso ben IntelliJ, ma non sono sicuro come richiamare la suite. file xml.

Oppure, ad esempio, dopo che i test sono stati eseguiti, testng crea un file testng-failed che è configurato per eseguire nuovamente tutti i test falliti.

Utilizzando mvn, come potrei dare il via a questa suite di test.

+0

Ho trovato la risposta qui: http://stackoverflow.com/questions/11762801/run-junit-suite-using-maven-command – Philippe

risposta

5

Di solito non hai bisogno di nulla di speciale in relazione a TestNG. Basta usare il Maven-infallibile-plugin:

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

e sulla base che tutti i test che vengono annotati correttamente dovrebbe funzionare. Ah, naturalmente, è necessario una dipendenza a TestNG in questo modo:

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

Di solito non voglio creare test Suites più, causare questo un punto che si deve mantenere che è spesso mancato di aggiornare ecc basta usare le annotazioni.

Se è necessario eseguire una particolare suite di test, è sufficiente definire un file testng.xml in src/test/resources e migliorare la configurazione dello maven-surefire plugin in modo appropriato.

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

ha funzionato per me.

+0

Ho fatto la stessa cosa, ma sfortunatamente non ha funzionato –

14

Questa risposta mi ha dato quello che cercavo, cioè la capacità di passare alla riga di comando il nome della suite voglio correre:

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

In poche parole, aggiungere quanto segue al la strofa Maven-surfire-plugin della vostra pom.xml:

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

Poi è possibile specificare il file XML Suite TestNG desiderato nella riga di comando:

mvn clean install test -DsuiteXmlFile=testngSuite.xml