Is it possible to run a predefined xml suite from the command line through maven?
I am able to run a class or a particular test. But I am unable to run a suite.
<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>
it worked for me.
Usually you don't need nothing special in relationship with TestNG. Just use the maven-surefire-plugin:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12</version>
</plugin>
and based on that all Tests which are correctly annotated should run. Ah of course you need a dependency to TestNG like this:
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.5.2</version>
<scope>test</scope>
</dependency>
Usually i wouldn't create Test Suites anymore, cause this a point which you have to maintain which is often missed to update etc. just use annotations.
If you need to run a particular suite of tests just define a testng.xml file in src/test/resources and enhance the configuration of the maven-surefire plugin appropriately.
<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>
This answer gave me what I was looking for, namely the ability to pass at the command line the name of the suite I want to run:
http://www.vazzolla.com/2013/03/how-to-select-which-testng-suites-to-run-in-maven-surefire-plugin/
In a nutshell, add the following to the maven-surfire-plugin stanza of your pom.xml:
<suiteXmlFiles>
<suiteXmlFile>${suiteXmlFile}</suiteXmlFile>
</suiteXmlFiles>
Then you can specify the desired testng suite xml file at the command line:
mvn clean install test -DsuiteXmlFile=testngSuite.xml