xref: /aosp_15_r20/external/testng/doc/maven.html (revision 83a54b2f2026052c38867f4cde56111edcd60b56)
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 &lt;dependency&gt;
106*83a54b2fSSadaf Ebrahimi   &lt;groupId&gt;org.testng&lt;/groupId&gt;
107*83a54b2fSSadaf Ebrahimi   &lt;artifactId&gt;testng&lt;/artifactId&gt;
108*83a54b2fSSadaf Ebrahimi   &lt;version&gt;6.8&lt;/version&gt;
109*83a54b2fSSadaf Ebrahimi   &lt;scope&gt;test&lt;/scope&gt;
110*83a54b2fSSadaf Ebrahimi &lt;/dependency&gt;
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