<html> <head> <title>TestNG - Maven</title> <link rel="stylesheet" href="testng.css" type="text/css" /> <link type="text/css" rel="stylesheet" href="http://beust.com/beust.css" /> <script type="text/javascript" src="http://beust.com/prettify.js"></script> <script type="text/javascript" src="banner.js"></script> <script type="text/javascript" src="http://beust.com/scripts/shCore.js"></script> <script type="text/javascript" src="http://beust.com/scripts/shBrushJava.js"></script> <script type="text/javascript" src="http://beust.com/scripts/shBrushXml.js"></script> <script type="text/javascript" src="http://beust.com/scripts/shBrushBash.js"></script> <script type="text/javascript" src="http://beust.com/scripts/shBrushPlain.js"></script> <link type="text/css" rel="stylesheet" href="http://beust.com/styles/shCore.css"/> <link type="text/css" rel="stylesheet" href="http://beust.com/styles/shThemeCedric.css"/> <script type="text/javascript"> SyntaxHighlighter.config.clipboardSwf = 'scripts/clipboard.swf'; SyntaxHighlighter.defaults['gutter'] = false; SyntaxHighlighter.all(); </script> </head> <body onLoad="prettyPrint()"> <script type="text/javascript"> displayMenu("maven.html") </script> <style type="text/css"> *.P1 { font-family:Sans; font-size:10pt; margin-left:0in; margin-right:0in; text-align:left ! important; text-indent:0inch; color:#a52a2a; } *.P2 { font-family:Sans; font-size:10pt; margin-left:0in; margin-right:0in; text-align:left ! important; text-indent:0inch; } *.P3 { font-family:'Nimbus Roman No9 L'; font-size:12pt; margin-left:0in; margin-right:0in; text-align:left ! important; text-indent:0inch; } *.Standard { font-family:'Nimbus Roman No9 L'; font-size:12pt; } *.Textbody { font-family:'Nimbus Roman No9 L'; font-size:12pt; margin-top:0in; margin-bottom:0.0835in; } *.T1 { font-weight:bold; } *.T2 { color:#353535; } *.T3 { color:#a52a2a; font-weight:bold; } *.T4 { color:#a52a2a; } *.T5 { color:#353535; font-family:Sans; font-size:10pt; } *.T6 { color:#a52a2a; font-family:Sans; font-size:10pt; font-weight:bold; } *.T7 { color:#a52a2a; font-family:Sans; font-size:10pt; } p,pre { width: 80%; } ul.toc { list-style: none; margin:0 0.7em 0; padding:0; font-family: verdana, arial, sans-serif; } ul.toc li { padding:0; margin: 0.2em 0 0; } ul ul { margin:0 2em 0; padding: 0; list-style-type: none; } li a { display: block; text-decoration: none; padding: 2px 10px; width: 140px; } ul.sub li a { display: block; border-top: none; padding: 2px 10px; background-color: transparent; } </style> <h2>TestNG Maven plug-ins</h2> <h4>Table of Contents</h4> <ul class="toc"> <li class="first"> <a class="summary" href="#maven2">Maven2 Plugin</a> <ul class="sub"> <li><a href="#archetype">Archetype</a></li> </ul> </li> <li class="last"><a class="summary" href="#maven1">Maven 1 Plugin</a></li> </ul> <!-- begin maven2 --> <h3 id="maven2">Maven 2</h3> <p>Maven 2 supports TestNG out of the box without the need to download any additional plugins <em>(other than TestNG itself)</em>. It is recommended that you use version 2.4 or above of the Surefire plugin (this is the case in all recent versions of Maven).</p> <p> You can find the full instructions on the <a href="http://maven.apache.org/plugins/maven-surefire-plugin/">Maven Surefire Plugin web site</a>. There are also <a href="http://maven.apache.org/plugins/maven-surefire-plugin/examples/testng.html">TestNG-specific instructions</a>. </p> <h4>Specifying your pom.xml</h4> The dependency in your project should look like the following: <pre class="brush: xml"> <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>6.8</version> <scope>test</scope> </dependency> </pre> <h4>Sample Report</h4> <p> A sample surefire report with TestNG can be found <a href="samplereport/index.html">here</a>. </p> <br/> <!-- end maven2 --> <!-- maven2 archetype --> <h3 id="archetype">Maven TestNG Archetype <em>(Martin Gilday)</em></h3> <p> Martin Gilday has added a new archetype for Maven2: to create a project using the archetype you simply have to specify my repository and the archetype ID. </p> <pre class="brush: text"> mvn archetype:create -DgroupId=org.martingilday -DartifactId=test1 -DarchetypeGroupId=org.martingilday -DarchetypeArtifactId=testng-archetype -DarchetypeVersion=1.0-SNAPSHOT -DremoteRepositories=http://www.martingilday.org/repository/</pre> <p>Of course substitute in your own groupId and artifactId.</p> <p>Don't forget to keep checking back at <a href="http://www.martingilday.org/updates/Maven+TestNG+Archetype">Martin's blog</a> for more updates. </p> <!-- end maven2 archetype --> <br/><br/> <h3 id="maven1">Maven 1 (by Andrew Glover)</h3> <p>The TestNG Maven plug-in is quite simple and consists of two goals and a series of optional properties.</p> <p>Currently the 1.1 version of the plug-in is bundled with official releases of TestNG. To utilize the plug-in, copy the <tt>maven-testng-plugin-<version>.jar</tt> to the <tt>$MAVEN_HOME/plugins</tt> directory.</p> <p>For the latest version of the plug-in (1.2 as of 12/12/05), update your <tt>maven.repo.remote</tt> to include <tt>http://www.vanwardtechnologies.com/repository/</tt> and then issue the following command: <tt>maven plugin:download</tt>. Maven will issue a series of questions, answer them as follows: <BR> <BR> <TABLE border="1" id="table1"> <TR> <TD><tt>artifactId:</tt></TD> <TD><tt>maven-testng-plugin</tt></TD> </TR> <TR> <TD>groupId:</TD> <TD><tt>testng</tt></TD> </TR> <TR> <TD>version:</TD> <TD><tt>1.2</tt></TD> </TR> </TABLE> </p> <h4>Goals</h4> <table border="1" id="table2"> <tr> <th>Goal</th> <th>Description</th> </tr> <tr> <td><tt>testng</tt></td> <td>Runs TestNG</td> </tr> <tr> <td><tt>testng:junit-report</tt></td> <td>Creates a JUnit style report</td> </tr> </table> <h4>Properties</h4> <table border="1" id="table3"> <tr> <th>Property</th> <th>Optional?</th> <th>Description</th> </tr> <tr> <td><tt>maven.testng.suitexml.name</tt></td> <td>Yes</td> <td>XML file name- defaults to <tt>testng.xml</tt></td> </tr> <tr> <td><tt>maven.testng.suitexml.dir</tt></td> <td>Yes</td> <td>Directory where XML file lives. Defaults to <tt>${basedir}/test/conf</tt></td> </tr> <tr> <td><tt>maven.testng.output.dir</tt></td> <td>Yes</td> <td>Default report directory. Defaults to <tt>${maven.build.dir}/testng-output</tt></td> </tr> <tr> <td><tt>maven.testng.report.dir</tt></td> <td>Yes</td> <td>Directory for JUnit reports. Defaults to <tt>${maven.build.dir}/testngJunitReport</tt></td> </tr> </table> <!-- end maven stuff --> <script src="http://www.google-analytics.com/urchin.js" type="text/javascript"></script> <script type="text/javascript"> _uacct = "UA-238215-2"; urchinTracker(); </script> </body>