1*83a54b2fSSadaf Ebrahimi<html> 2*83a54b2fSSadaf Ebrahimi <head> 3*83a54b2fSSadaf Ebrahimi <title>TestNG - Maven</title> 4*83a54b2fSSadaf Ebrahimi 5*83a54b2fSSadaf Ebrahimi <link rel="stylesheet" href="testng.css" type="text/css" /> 6*83a54b2fSSadaf Ebrahimi <link type="text/css" rel="stylesheet" href="http://beust.com/beust.css" /> 7*83a54b2fSSadaf Ebrahimi <script type="text/javascript" src="http://beust.com/prettify.js"></script> 8*83a54b2fSSadaf Ebrahimi <script type="text/javascript" src="banner.js"></script> 9*83a54b2fSSadaf Ebrahimi 10*83a54b2fSSadaf Ebrahimi <script type="text/javascript" src="http://beust.com/scripts/shCore.js"></script> 11*83a54b2fSSadaf Ebrahimi <script type="text/javascript" src="http://beust.com/scripts/shBrushJava.js"></script> 12*83a54b2fSSadaf Ebrahimi <script type="text/javascript" src="http://beust.com/scripts/shBrushXml.js"></script> 13*83a54b2fSSadaf Ebrahimi <script type="text/javascript" src="http://beust.com/scripts/shBrushBash.js"></script> 14*83a54b2fSSadaf Ebrahimi <script type="text/javascript" src="http://beust.com/scripts/shBrushPlain.js"></script> 15*83a54b2fSSadaf Ebrahimi <link type="text/css" rel="stylesheet" href="http://beust.com/styles/shCore.css"/> 16*83a54b2fSSadaf Ebrahimi <link type="text/css" rel="stylesheet" href="http://beust.com/styles/shThemeCedric.css"/> 17*83a54b2fSSadaf Ebrahimi <script type="text/javascript"> 18*83a54b2fSSadaf Ebrahimi SyntaxHighlighter.config.clipboardSwf = 'scripts/clipboard.swf'; 19*83a54b2fSSadaf Ebrahimi SyntaxHighlighter.defaults['gutter'] = false; 20*83a54b2fSSadaf Ebrahimi SyntaxHighlighter.all(); 21*83a54b2fSSadaf Ebrahimi </script> 22*83a54b2fSSadaf Ebrahimi 23*83a54b2fSSadaf Ebrahimi</head> 24*83a54b2fSSadaf Ebrahimi 25*83a54b2fSSadaf Ebrahimi<body onLoad="prettyPrint()"> 26*83a54b2fSSadaf Ebrahimi 27*83a54b2fSSadaf Ebrahimi<script type="text/javascript"> 28*83a54b2fSSadaf Ebrahimi displayMenu("maven.html") 29*83a54b2fSSadaf Ebrahimi</script> 30*83a54b2fSSadaf Ebrahimi 31*83a54b2fSSadaf Ebrahimi 32*83a54b2fSSadaf Ebrahimi<style type="text/css"> 33*83a54b2fSSadaf Ebrahimi *.P1 { font-family:Sans; font-size:10pt; margin-left:0in; margin-right:0in; text-align:left ! important; text-indent:0inch; color:#a52a2a; } 34*83a54b2fSSadaf Ebrahimi *.P2 { font-family:Sans; font-size:10pt; margin-left:0in; margin-right:0in; text-align:left ! important; text-indent:0inch; } 35*83a54b2fSSadaf Ebrahimi *.P3 { font-family:'Nimbus Roman No9 L'; font-size:12pt; margin-left:0in; margin-right:0in; text-align:left ! important; text-indent:0inch; } 36*83a54b2fSSadaf Ebrahimi *.Standard { font-family:'Nimbus Roman No9 L'; font-size:12pt; } 37*83a54b2fSSadaf Ebrahimi *.Textbody { font-family:'Nimbus Roman No9 L'; font-size:12pt; margin-top:0in; margin-bottom:0.0835in; } 38*83a54b2fSSadaf Ebrahimi *.T1 { font-weight:bold; } 39*83a54b2fSSadaf Ebrahimi *.T2 { color:#353535; } 40*83a54b2fSSadaf Ebrahimi *.T3 { color:#a52a2a; font-weight:bold; } 41*83a54b2fSSadaf Ebrahimi *.T4 { color:#a52a2a; } 42*83a54b2fSSadaf Ebrahimi *.T5 { color:#353535; font-family:Sans; font-size:10pt; } 43*83a54b2fSSadaf Ebrahimi *.T6 { color:#a52a2a; font-family:Sans; font-size:10pt; font-weight:bold; } 44*83a54b2fSSadaf Ebrahimi *.T7 { color:#a52a2a; font-family:Sans; font-size:10pt; } 45*83a54b2fSSadaf Ebrahimi p,pre { width: 80%; } 46*83a54b2fSSadaf Ebrahimi 47*83a54b2fSSadaf Ebrahimi ul.toc { 48*83a54b2fSSadaf Ebrahimi list-style: none; 49*83a54b2fSSadaf Ebrahimi margin:0 0.7em 0; 50*83a54b2fSSadaf Ebrahimi padding:0; 51*83a54b2fSSadaf Ebrahimi font-family: verdana, arial, sans-serif; 52*83a54b2fSSadaf Ebrahimi } 53*83a54b2fSSadaf Ebrahimi ul.toc li { 54*83a54b2fSSadaf Ebrahimi padding:0; 55*83a54b2fSSadaf Ebrahimi margin: 0.2em 0 0; 56*83a54b2fSSadaf Ebrahimi } 57*83a54b2fSSadaf Ebrahimi ul ul { 58*83a54b2fSSadaf Ebrahimi margin:0 2em 0; 59*83a54b2fSSadaf Ebrahimi padding: 0; 60*83a54b2fSSadaf Ebrahimi list-style-type: none; 61*83a54b2fSSadaf Ebrahimi } 62*83a54b2fSSadaf Ebrahimi li a { 63*83a54b2fSSadaf Ebrahimi display: block; 64*83a54b2fSSadaf Ebrahimi text-decoration: none; 65*83a54b2fSSadaf Ebrahimi padding: 2px 10px; 66*83a54b2fSSadaf Ebrahimi width: 140px; 67*83a54b2fSSadaf Ebrahimi } 68*83a54b2fSSadaf Ebrahimi ul.sub li a { 69*83a54b2fSSadaf Ebrahimi display: block; 70*83a54b2fSSadaf Ebrahimi border-top: none; 71*83a54b2fSSadaf Ebrahimi padding: 2px 10px; 72*83a54b2fSSadaf Ebrahimi background-color: transparent; 73*83a54b2fSSadaf Ebrahimi } 74*83a54b2fSSadaf Ebrahimi</style> 75*83a54b2fSSadaf Ebrahimi 76*83a54b2fSSadaf Ebrahimi<h2>TestNG Maven plug-ins</h2> 77*83a54b2fSSadaf Ebrahimi 78*83a54b2fSSadaf Ebrahimi<h4>Table of Contents</h4> 79*83a54b2fSSadaf Ebrahimi<ul class="toc"> 80*83a54b2fSSadaf Ebrahimi <li class="first"> 81*83a54b2fSSadaf Ebrahimi <a class="summary" href="#maven2">Maven2 Plugin</a> 82*83a54b2fSSadaf Ebrahimi 83*83a54b2fSSadaf Ebrahimi <ul class="sub"> 84*83a54b2fSSadaf Ebrahimi <li><a href="#archetype">Archetype</a></li> 85*83a54b2fSSadaf Ebrahimi </ul> 86*83a54b2fSSadaf Ebrahimi </li> 87*83a54b2fSSadaf Ebrahimi 88*83a54b2fSSadaf Ebrahimi <li class="last"><a class="summary" href="#maven1">Maven 1 Plugin</a></li> 89*83a54b2fSSadaf Ebrahimi</ul> 90*83a54b2fSSadaf Ebrahimi 91*83a54b2fSSadaf Ebrahimi<!-- begin maven2 --> 92*83a54b2fSSadaf Ebrahimi<h3 id="maven2">Maven 2</h3> 93*83a54b2fSSadaf Ebrahimi 94*83a54b2fSSadaf Ebrahimi<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> 95*83a54b2fSSadaf Ebrahimi 96*83a54b2fSSadaf Ebrahimi<p> 97*83a54b2fSSadaf EbrahimiYou 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>. 98*83a54b2fSSadaf Ebrahimi</p> 99*83a54b2fSSadaf Ebrahimi 100*83a54b2fSSadaf Ebrahimi<h4>Specifying your pom.xml</h4> 101*83a54b2fSSadaf Ebrahimi 102*83a54b2fSSadaf EbrahimiThe dependency in your project should look like the following: 103*83a54b2fSSadaf Ebrahimi 104*83a54b2fSSadaf Ebrahimi<pre class="brush: xml"> 105*83a54b2fSSadaf Ebrahimi <dependency> 106*83a54b2fSSadaf Ebrahimi <groupId>org.testng</groupId> 107*83a54b2fSSadaf Ebrahimi <artifactId>testng</artifactId> 108*83a54b2fSSadaf Ebrahimi <version>6.8</version> 109*83a54b2fSSadaf Ebrahimi <scope>test</scope> 110*83a54b2fSSadaf Ebrahimi </dependency> 111*83a54b2fSSadaf Ebrahimi</pre> 112*83a54b2fSSadaf Ebrahimi 113*83a54b2fSSadaf Ebrahimi<h4>Sample Report</h4> 114*83a54b2fSSadaf Ebrahimi<p> 115*83a54b2fSSadaf EbrahimiA sample surefire report with TestNG can be found <a href="samplereport/index.html">here</a>. 116*83a54b2fSSadaf Ebrahimi</p> 117*83a54b2fSSadaf Ebrahimi<br/> 118*83a54b2fSSadaf Ebrahimi<!-- end maven2 --> 119*83a54b2fSSadaf Ebrahimi 120*83a54b2fSSadaf Ebrahimi<!-- maven2 archetype --> 121*83a54b2fSSadaf Ebrahimi<h3 id="archetype">Maven TestNG Archetype <em>(Martin Gilday)</em></h3> 122*83a54b2fSSadaf Ebrahimi<p> 123*83a54b2fSSadaf Ebrahimi 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. 124*83a54b2fSSadaf Ebrahimi</p> 125*83a54b2fSSadaf Ebrahimi <pre class="brush: text"> 126*83a54b2fSSadaf Ebrahimi mvn archetype:create -DgroupId=org.martingilday -DartifactId=test1 -DarchetypeGroupId=org.martingilday -DarchetypeArtifactId=testng-archetype 127*83a54b2fSSadaf Ebrahimi -DarchetypeVersion=1.0-SNAPSHOT -DremoteRepositories=http://www.martingilday.org/repository/</pre> 128*83a54b2fSSadaf Ebrahimi 129*83a54b2fSSadaf Ebrahimi<p>Of course substitute in your own groupId and artifactId.</p> 130*83a54b2fSSadaf Ebrahimi<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> 131*83a54b2fSSadaf Ebrahimi<!-- end maven2 archetype --> 132*83a54b2fSSadaf Ebrahimi 133*83a54b2fSSadaf Ebrahimi<br/><br/> 134*83a54b2fSSadaf Ebrahimi<h3 id="maven1">Maven 1 (by Andrew Glover)</h3> 135*83a54b2fSSadaf Ebrahimi 136*83a54b2fSSadaf Ebrahimi<p>The TestNG Maven plug-in is quite simple and consists of 137*83a54b2fSSadaf Ebrahimitwo goals and a series of optional properties.</p> 138*83a54b2fSSadaf Ebrahimi 139*83a54b2fSSadaf Ebrahimi<p>Currently the 1.1 version of the plug-in is bundled with 140*83a54b2fSSadaf Ebrahimiofficial releases of TestNG. To utilize the plug-in, copy the 141*83a54b2fSSadaf Ebrahimi<tt>maven-testng-plugin-<version>.jar</tt> to the <tt>$MAVEN_HOME/plugins</tt> 142*83a54b2fSSadaf Ebrahimidirectory.</p> 143*83a54b2fSSadaf Ebrahimi 144*83a54b2fSSadaf Ebrahimi<p>For the latest version of the plug-in (1.2 as of 12/12/05), 145*83a54b2fSSadaf Ebrahimiupdate your <tt>maven.repo.remote</tt> to include <tt>http://www.vanwardtechnologies.com/repository/</tt> 146*83a54b2fSSadaf Ebrahimiand then issue the following command: <tt>maven plugin:download</tt>. Maven will issue a series of questions, 147*83a54b2fSSadaf Ebrahimianswer them as follows: <BR> 148*83a54b2fSSadaf Ebrahimi<BR> 149*83a54b2fSSadaf Ebrahimi<TABLE border="1" id="table1"> 150*83a54b2fSSadaf Ebrahimi <TR> 151*83a54b2fSSadaf Ebrahimi <TD><tt>artifactId:</tt></TD> 152*83a54b2fSSadaf Ebrahimi <TD><tt>maven-testng-plugin</tt></TD> 153*83a54b2fSSadaf Ebrahimi </TR> 154*83a54b2fSSadaf Ebrahimi <TR> 155*83a54b2fSSadaf Ebrahimi <TD>groupId:</TD> 156*83a54b2fSSadaf Ebrahimi <TD><tt>testng</tt></TD> 157*83a54b2fSSadaf Ebrahimi </TR> 158*83a54b2fSSadaf Ebrahimi <TR> 159*83a54b2fSSadaf Ebrahimi <TD>version:</TD> 160*83a54b2fSSadaf Ebrahimi <TD><tt>1.2</tt></TD> 161*83a54b2fSSadaf Ebrahimi </TR> 162*83a54b2fSSadaf Ebrahimi</TABLE> 163*83a54b2fSSadaf Ebrahimi</p> 164*83a54b2fSSadaf Ebrahimi 165*83a54b2fSSadaf Ebrahimi 166*83a54b2fSSadaf Ebrahimi<h4>Goals</h4> 167*83a54b2fSSadaf Ebrahimi<table border="1" id="table2"> 168*83a54b2fSSadaf Ebrahimi <tr> 169*83a54b2fSSadaf Ebrahimi <th>Goal</th> 170*83a54b2fSSadaf Ebrahimi <th>Description</th> 171*83a54b2fSSadaf Ebrahimi </tr> 172*83a54b2fSSadaf Ebrahimi <tr> 173*83a54b2fSSadaf Ebrahimi <td><tt>testng</tt></td> 174*83a54b2fSSadaf Ebrahimi <td>Runs TestNG</td> 175*83a54b2fSSadaf Ebrahimi </tr> 176*83a54b2fSSadaf Ebrahimi <tr> 177*83a54b2fSSadaf Ebrahimi <td><tt>testng:junit-report</tt></td> 178*83a54b2fSSadaf Ebrahimi <td>Creates a JUnit style report</td> 179*83a54b2fSSadaf Ebrahimi </tr> 180*83a54b2fSSadaf Ebrahimi</table> 181*83a54b2fSSadaf Ebrahimi<h4>Properties</h4> 182*83a54b2fSSadaf Ebrahimi<table border="1" id="table3"> 183*83a54b2fSSadaf Ebrahimi <tr> 184*83a54b2fSSadaf Ebrahimi <th>Property</th> 185*83a54b2fSSadaf Ebrahimi <th>Optional?</th> 186*83a54b2fSSadaf Ebrahimi <th>Description</th> 187*83a54b2fSSadaf Ebrahimi </tr> 188*83a54b2fSSadaf Ebrahimi <tr> 189*83a54b2fSSadaf Ebrahimi <td><tt>maven.testng.suitexml.name</tt></td> 190*83a54b2fSSadaf Ebrahimi <td>Yes</td> 191*83a54b2fSSadaf Ebrahimi <td>XML file name- defaults to <tt>testng.xml</tt></td> 192*83a54b2fSSadaf Ebrahimi </tr> 193*83a54b2fSSadaf Ebrahimi <tr> 194*83a54b2fSSadaf Ebrahimi <td><tt>maven.testng.suitexml.dir</tt></td> 195*83a54b2fSSadaf Ebrahimi <td>Yes</td> 196*83a54b2fSSadaf Ebrahimi <td>Directory where XML file lives. Defaults to <tt>${basedir}/test/conf</tt></td> 197*83a54b2fSSadaf Ebrahimi </tr> 198*83a54b2fSSadaf Ebrahimi <tr> 199*83a54b2fSSadaf Ebrahimi <td><tt>maven.testng.output.dir</tt></td> 200*83a54b2fSSadaf Ebrahimi <td>Yes</td> 201*83a54b2fSSadaf Ebrahimi <td>Default report directory. Defaults to <tt>${maven.build.dir}/testng-output</tt></td> 202*83a54b2fSSadaf Ebrahimi </tr> 203*83a54b2fSSadaf Ebrahimi <tr> 204*83a54b2fSSadaf Ebrahimi <td><tt>maven.testng.report.dir</tt></td> 205*83a54b2fSSadaf Ebrahimi <td>Yes</td> 206*83a54b2fSSadaf Ebrahimi <td>Directory for JUnit reports. Defaults to <tt>${maven.build.dir}/testngJunitReport</tt></td> 207*83a54b2fSSadaf Ebrahimi </tr> 208*83a54b2fSSadaf Ebrahimi</table> 209*83a54b2fSSadaf Ebrahimi 210*83a54b2fSSadaf Ebrahimi<!-- end maven stuff --> 211*83a54b2fSSadaf Ebrahimi 212*83a54b2fSSadaf Ebrahimi<script src="http://www.google-analytics.com/urchin.js" type="text/javascript"></script> 213*83a54b2fSSadaf Ebrahimi<script type="text/javascript"> 214*83a54b2fSSadaf Ebrahimi_uacct = "UA-238215-2"; 215*83a54b2fSSadaf EbrahimiurchinTracker(); 216*83a54b2fSSadaf Ebrahimi</script> 217*83a54b2fSSadaf Ebrahimi 218*83a54b2fSSadaf Ebrahimi</body> 219