<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>
      </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; }
</style>

<h2>TestNG Maven plug-ins</h2>
<!--
TestNG has plug-ins for both Maven 1 and Maven 2.
-->

<h3>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.source.dir</tt></td>
        <td>Yes</td>
        <td>For 1.4- where test source is. Defaults to <tt>${basedir}/test/java/</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>

<p>A sample JUnit sytle report generated via the TestNG maven
plug-in can be found <A
    HREF="http://www.vanwardtechnologies.com/nfjs/testng/sample-report/junit-noframes.html#top">here</A>.
</p>
<!-- end maven stuff -->

<!--  begin maven2  -->
<h3>Maven 2 (by Jesse Kuhnert)</h3>

<p>Maven2 has changed quite a bit from the first release. Maven2 should support TestNG out of 
the box without the need to download any additional plugins(other than TestNG itself). In fact, 
other than specifying testng as one of your build dependencies,  most people shouldn't really have 
to do any other configuration for the majority of cases. Most of it just works.</p>

<h4>Snapshot Build Updates</h4>
<p>
<b>IMPORTANT:</b>The current (as of 7/30/06) maven2 TestNG plugin support has a few issues that are
in the process of being resolved by the maven2 team. Until such time as these changes are made/fixed you 
may need to add a new plugin repository into your maven2 pom in order to get the most up to date functionality
working in your build. The new repository can be added with the following style script fragment:
</p>

<pre class="prettyprint">
&lt;pluginRepositories&gt;
   &lt;pluginRepository&gt;
      &lt;id&gt;tapestry.javaforge&lt;/id&gt;
      &lt;url&gt;http://howardlewisship.com/repository&lt;/url&gt;
   &lt;/pluginRepository&gt;
&lt;/pluginRepositories&gt;
</pre>

<p>
The specific version you want to use for surefire is <b>2.8-SNAPSHOT</b>.
</p>

<h4>Reference</h4>
<p>Though this section will include a lot more TestNG specific
features, the overall test plugin properties should be mostly
covered on mavens site. <b>See:</b> <a
    href="http://maven.apache.org/plugins/maven-surefire-plugin/testng.html">maven TestNG</a></p>

<h4>Overview</h4>
<p>Most of the configuration aspects with maven will be
centered around your pom.xml's <tt>build</tt> section. <i>(<a
    href="http://maven.apache.org/maven-model/maven.html">reference</a>)</i>
In here you define things like build output directories,
location of test source code, as well as configure plugin
parameters, like those you will need to get TestNG setup the
way that you prefer. Following is a sample portion of this
section in a pom.xml file.</p>

<pre class="prettyprint">
&lt;build&gt;
 &lt;defaultGoal&gt;package&lt;/defaultGoal&gt;
 &lt;sourceDirectory&gt;src/java&lt;/sourceDirectory&gt;

  &lt;resources&gt;
    &lt;resource&gt;
      &lt;directory&gt;src/js/dojo&lt;/directory&gt;
      &lt;includes&gt;
        &lt;include&gt;**&lt;/include&gt;
      &lt;/includes&gt;
      &lt;targetPath&gt;net/sf/tacos/ajax/components/dojo&lt;/targetPath&gt;
    &lt;/resource&gt;

    &lt;resource&gt;
      &lt;directory&gt;src/descriptor/META-INF&lt;/directory&gt;
        &lt;includes&gt;
          &lt;include&gt;**&lt;/include&gt;
        &lt;/includes&gt;
        
        &lt;targetPath&gt;META-INF&lt;/targetPath
      &lt;/resource&gt;
    &lt;/resources&gt;

    &lt;testSourceDirectory&gt;src/test&lt;/testSourceDirectory&gt;

    &lt;testResources&gt;
      &lt;testResource&gt;
        &lt;directory&gt;src/test-data&lt;/directory&gt;
        &lt;includes&gt;
          &lt;include&gt;*.*&lt;/include&gt;
        &lt;/includes&gt;
      &lt;excludes&gt;
        &lt;exclude&gt;*.launch&lt;/exclude&gt;
      &lt;/excludes&gt;
    &lt;/testResource&gt;
  &lt;/testResources&gt;

  &lt;plugins&gt;
    &lt;plugin&gt;
      &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
      &lt;artifactId&gt;maven-surefire-plugin&lt;/artifactId&gt;
      &lt;configuration&gt;
        &lt;groups&gt;functest,util&lt;/groups&gt;
      &lt;/configuration&gt;
    &lt;/plugin&gt;
  &lt;/plugins&gt;
&lt;/build&gt;
</pre>

<p>
The most notable section is the <tt>configuration</tt> element. Within the boundaries of this element you can define all of
the configurable TestNG properties.
</p>

<h4>Configuration</h4><h5>Goals</h5><table border="1" id="table2">
    <tr>
        <th>Goal</th><th>Description</th></tr><tr>
        <td><tt>test</tt></td><td>Compiles and runs your tests</td></tr><tr>
        <td><tt>site</tt></td><td>Creates your maven generated site, which will include the TestNG report output.</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>includes</tt></td><td>No</td><td>Comma delimited list of regexp patterns to include source files with. Ie **/Test*.java</td></tr><tr>
        <td><tt>groups</tt></td><td>Yes</td><td>Comma delimited list of groups to be included in test. If left blank will run all tests by default.</td></tr><tr>
        <td><tt>excludeGroups</tt></td><td>Yes</td><td>Comma delimited list of groups that should <em>not</em> be included in test run.</td></tr><tr>
        <td><tt>suiteXmlFiles</tt></td><td>Yes</td><td>Comma delimited list of file paths pointing to testng.xml suite files. <tt>(src/test-data/testng-core.xml,src/test-data/testng-functional.xml)</tt>
        <p><em>Warning: When defining suiteXmlFiles most of the other parameters are ignored.</em></p></td></tr><tr>
        <td><tt>threadCount</tt></td><td>Yes</td><td>Number of threads to run for tests</td></tr><tr>
        <td><tt>parallel</tt></td><td>Yes</td><td>When using threads, whether or not to run them in parallel.</td></tr></table><h3>Java 1.4</h3><p>
In order to use javadoc style annotations you currently <em>must</em> run maven with a java 1.4 jvm in order for them to be seen. If 
you try running your javadoc annotated tests in a 1.5 jvm they will most likely not be found. It is hoped in a future release this problem
will be eliminated.
</p>

<h4>Sample Report</h4><p>
A sample surefire report with TestNG can be found <a href="samplereport/index.html">here</a>.
</p>

<!--  end maven2  -->

	<script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-238215-2";
urchinTracker();
</script>
	
</body>