<html>
    <head>
        <title>TestNG - Eclipse</title>
        <script type="text/javascript" src="banner.js"></script>
        <link rel="stylesheet" href="testng.css" type="text/css" />
      </head>
<body>

<script type="text/javascript">
    displayMenu("eclipse.html")
</script>


<h2 align="center">TestNG Eclipse plug-in</h2>
<p>The TestNG Eclipse plug-in allows you to run your TestNG tests from Eclipse 
and easily monitor their execution and their output. It has its own <a href="http://github.com/cbeust/testng-eclipse">project repository called <tt>testng-eclipse</tt></a>.</p>


<h3>Table of Contents</h3>

&nbsp;&nbsp;<a class="summary" href="#eclipse-installation">1 - Installation</a>
<br>
&nbsp;&nbsp;<a class="summary" href="#eclipse-creating">2 - Creating a TestNG class</a>
<br>
&nbsp;&nbsp;<a class="summary" href="#eclipse-create-launch">3 - Launch configurations</a>
<br>
&nbsp;&nbsp;<a class="summary" href="#eclipse-create-class">3.1 - From a class file</a>
<br>
&nbsp;&nbsp;<a class="summary" href="#eclipse-create-groups">3.2 - From groups</a>
<br>
&nbsp;&nbsp;<a class="summary" href="#eclipse-create-xml">3.3 - From an XML file</a>
<br>
&nbsp;&nbsp;<a class="summary" href="#eclipse-create-method">3.4 - From a method</a>
<br>
&nbsp;&nbsp;<a class="summary" href="#eclipse-listeners">3.5 - Specifying listeners and other settings</a>
<br>
&nbsp;&nbsp;<a class="summary" href="#eclipse-viewing">4 - Viewing the results</a>
<br>
&nbsp;&nbsp;<a class="summary" href="#eclipse-search">5 - Search</a>
<br>
&nbsp;&nbsp;<a class="summary" href="#eclipse-summary">6 - The Summary tab</a>
<br>
&nbsp;&nbsp;<a class="summary" href="#eclipse-quickfix">7 - Converting JUnit tests</a>
<br>
&nbsp;&nbsp;<a class="summary" href="#eclipse-quickfixes">8 - Quick fixes</a>
<br>
&nbsp;&nbsp;<a class="summary" href="#eclipse-preferences">9 - Preferences and Properties</a>
<br>
&nbsp;&nbsp;<a class="summary" href="#eclipse-workbench-preferences">9.1 - Workbench Preferences</a>
<br>
&nbsp;&nbsp;<a class="summary" href="#eclipse-project-properties">9.2 - Project Properties</a>
<br>
&nbsp;&nbsp;<a class="summary" href="#testng-xml"></a>

<!--
  Installation
-->
<h3><a name="eclipse-installation">1 - Installation</a></h3><p>
Once you have <a href="http://testng.org/doc/download.html">installed the plug-in</a>, restart Eclipse and select the menu <tt>Window / Show View 
/ Other...</tt>&nbsp; and you should see the TestNG view listed in the Java category.</p><p align="center">
<img border="0" src="http://testng.org/pictures/view.png" />
</p>
<p>
NOTE: since TestNG Eclipse Plugin 6.9.8, the minimum required TestNG version is <b>6.5.1</b>
</p>

<!--
  Creating
-->
<h3><a name="eclipse-creating">2 - Creating a TestNG class</a></h3><p>

To create a new TestNG class, select the menu File / New / TestNG:

<p align="center">
<img border="0" src="http://testng.org/pictures/new-1.png" />
</p>

If you currently have a Java file open in the editor or if you have a Java file selected in the Navigator, the first page of the wizard will show you a list of all the public methods of that class and it will give you the option to select the ones you want to test. Each method you select on this page will be included in the new TestNG class with a default implementation that throws an exception, so you remember to implement it.

<p align="center">
<img border="0" src="http://testng.org/pictures/new-2.png" />
</p>

The next page lets you specify where that file will be created, whether it should contain default implementation for some configuration methods, if you'd like a data provider and finally, if a <tt>testng.xml</tt> file should be generated.

<p align="center">
<img border="0" src="http://testng.org/pictures/new-3.png" />
</p>

The plug-in will make a guess about the best location where this file should be created (for example, if you are using Maven, the default location will be under <tt>src/test/java</tt>).

<h3><a name="eclipse-create-launch">3 - Launch configuration</a></h3><p>Once you have created classes that contain TestNG annotations and/or one or 
more <tt>testng.xml</tt> files, you can create a TestNG Launch Configuration.&nbsp; 
Select the <tt>Run / Run...</tt> (or <tt>Run / Debug...</tt>) menu and create a new TestNG 
configuration:</p><p align="center">
<img border="0" src="http://testng.org/pictures/launch.png" />
</p>
<p>You should change the name of this configuration and pick a project, which 
can be selected by clicking on the <tt>Browse...</tt> button at the top of the window.</p>
<p>
Runtime options:
<ul>
<li><b>Log Level</b>: specify the value (0-10) for different verbose log levels</li>
<li><b>Verbose</b>: enable the runtime TestNG verbose log</li>
<li><b>Debug</b>: enable more runtime TestNG debug info</li>
<li><b>Serialization Protocol</b>: the serialization protocol used for communicating between TestNG Eclipse Plugin and TestNG runtime.
The default is "Object Serialization", the other option ("String Serialization") is deprecated.</li>
<li><b>Add the POM's JVM Arguments when launch</b>: for maven based project, we normally define maven-surefire-plugin for test phase and maven-failsafe-plugin for integration test phase, there might be having the testing runtime JVM arguments defined in the "argLine" element of the maven plugin configuration. If you check this option, TestNG Eclipse Plugin will try to recognize the JVM arguments in "argLine", add them to TestNG runtime JVM arguments when launch.<br/>
NOTE 1: these JVM arguments are put on front of user defined VM arguments on "Arguments" tab, which means you can overide the POM defined JVM argumetns with the ones on "Arguments" tab.<br/>
NOTE 2: if there are multiple "argLine" elements in the pom.xml, the first presence will be used. If it's not the desired behaviour, you can simply uncheck this option, and type your JVM arguments on the "Arguments" tab next to this "Test" tab.</li>
</ul>
</p>
<p>Then you choose to launch your TestNG tests in the following ways:</p><h4><a name="eclipse-launch-class">4.2.1 - From a class file</a></h4><p>Make sure the box near <tt>Class</tt> is checked and then pick a class from your 
project.&nbsp; You can click on the <tt>Browse...</tt> button and pick it directly from a 
list.&nbsp; This list only contains classes that contain TestNG annotations:</p><p align="center">
<img border="0" src="http://testng.org/pictures/classes.png" />
</p>


<h4><a name="eclipse-create-groups">3.2 - From groups</a></h4>
<p>If you only want to launch one or several groups, you can type them in the 
text field or pick them from a list by clicking on the <tt>Browse...</tt> button&nbsp;

<p align="center">
<img border="0" src="http://testng.org/pictures/groups.png" />
</p>


<h4><a name="eclipse-create-xml">3.3 - From a definition file</a></h4>
Finally, you can select a suite definition from your project.  It doesn't have to be named
<tt>testng.xml</tt>, the plug-in will automatically identify all the applicable TestNG XML files 
in your project:
<p align="center">
<img border="0" src="http://testng.org/pictures/suites.png" />
</p>
You can type the regex on the filter text field to narrow down to suite definition files matching your search from a long list of files.

<h4>
<a name="eclipse-create-method">3.4 - From a method </a>
</h4>
<p>This launch isn't accomplished from the Launch dialog but 
directly from your Outline view:</p><p align="center">
<img border="0" src="http://testng.org/pictures/outline.png" />
</p>
You can right-click on any test methods and select <tt>Run as... / TestNG test</tt> and only the selected
method will be run (not shown on the above screenshot because I couldn't find a way to capture
a contextual menu).<p>Method launching is also available from the Package 
Explorer view and from the Java Browser perspective.</p><p>Once you have selected one of these launches, you can also choose the logging of level. Then you can launch the tests by pressing the <tt>Debug</tt> (or <tt>Run</tt>) button, which will switch you to the Debug perspective and will open the main TestNG view.</p>

<h4>
<a name="eclipse-listeners">3.5 -Specifying listeners and other settings </a>
</h4>

As you saw above, the plug-in will let you start tests in many different ways:  from an XML file, from a method, a class, etc...  When you are running an XML file, you can specify all the settings you want for this run in the XML file, but what if you want to run a package in parallel mode with specific listeners?  How can you configure the settings for all the launches that are not done from an XML file?

<p>

In order to give you access to the most flexibility, TestNG lets you specify an XML suite file for all these launches, which you can find in the Preferences menu:

<p align="center">
<img border="0" src="http://testng.org/pictures/template.png"/>
</p>

If you specify a valid suite file as "XML template file", TestNG will reuse all the settings found in this XML file, such as parallel, name, listeners, thread pool size, etc...  Only the <tt>&lt;test&gt;</tt> tags in this file will be ignored since the plug-in will replace these by a generated <tt>&lt;test&gt;</tt> tag that represents the launch you chose.

<!--
  Viewing
-->
<h3>
<a name="eclipse-viewing">4 - Viewing the test results </a>
</h3>

<p align="center">
<img border="0" src="http://testng.org/pictures/success.png" />
</p>

<p>The above view shows a successful run of the tests:&nbsp; the bar is green 
and no failed tests are reported.&nbsp; The <tt>All tests</tt> tab shows you a list of 
all the classes and methods that were run.</p><p>If your test run contains failures, the view will look like this:</p><p align="center">
<img border="0" src="http://testng.org/pictures/failure.png" />
</p>

<p>You can use the <tt>Failed tests</tt> tab to display only these tests that failed, and 
when you select such a test, the stack trace will be shown on the right-hand 
pane.&nbsp; You can double click on the offending line to be taken directly to 
the failure in your code.</p>

<h3>
<a name="eclipse-search">5 - Search </a>
</h3>


<p align="center">
<img border="0" src="http://testng.org/pictures/search.png" />
</p>

<p>When you have hundreds of tests running, finding a specific one is not always easy, so you can type a few letters of the test method or its parameters in the Search box and the content of the tree will automatically narrow down to methods matching your search. Note in the screen shot above that the search also works on parameters provided by <tt>@DataProvider</tt>.</p>

<h3>
<a name="eclipse-summary">6 - Summary </a>
</h3>


<p align="center"> 
<img border="0" src="http://testng.org/pictures/summary1.png" />
</p> 
<p>The Summary tab gives you statistics on your test run, such as the timings, the test names, the number of methods and classes, etc&#8230; Since the results are shown in a table, you can also sort on any criterion you like for easier parsing. This is especially handy when you are trying to determine what tests take the longest time.</p>

<p>The search box works in this view as well, and note that in the screen shot below, the Time column is sorted in decreasing order:</p> 
<p align="center"> 
<img border="0" src="http://testng.org/pictures/summary2.png" />



<h3><a name="eclipse-quickfix">7 - Converting JUnit tests</a></h3>

You can easily convert JUnit 3 and JUnit 4 tests to TestNG.

<p>

Your first option is to use the Quick Fix function:

<p>

<p align="center"> 
<img border="0" src="http://testng.org/pictures/convert1.png" />
<br>
<b>Convert from JUnit 3</b>
</p>

<p align="center"> 
<img border="0" src="http://testng.org/pictures/convert2.png" />
<br>
<b>Convert from JUnit 4</b>
</p>

You can also convert packages or entire source folders with the conversion refactoring:

<p align="center"> 
<img border="0" src="http://testng.org/pictures/refactoring1.png" />
</p>

The refactoring wizard contains several pages:

<p align="center"> 
<img border="0" src="http://beust.com/pics/menu-convert2.png " />
</p>
 
This page lets you generate a testng.xml automatically. You can configure whether to include your test classes individually or by package, the suite and test name and also whether these tests should run in parallel.

<p align="center"> 
<img border="0" src="http://testng.org/pictures/refactoring2.png" />
</p>

This page gives you an overview of the changes that are about to be performed. You can also decide to exclude certain files from the refactoring.

<p>

When you are done, press the "Finish" button. Like all Eclipse refactorings, you can undo all these changes in one click:

<p align="center"> 
<img border="0" src="http://beust.com/pics/menu-convert4.png" />
</p>

<h3><a name="eclipse-quickfixes">8 - Quick fixes</a></h3>

The TestNG Eclipse plug-in offers several quick fixes while you are editing a TestNG class (accessible with <tt>Ctrl-1</tt> on Windows/Linux and <tt>&#8984;-1</tt> on Mac OS):

<h4>Convert to JUnit</h4>

This was covered in the <a href="#eclipse-quickfix"> previous section</a>.

<h4>Pushing and pulling <tt>@Test</tt> annotations</h4>

If you have several test methods annotated with <tt>@Test</tt> and you'd like to replace them all with a single <tt>@Test</tt> annotation at the class level, choose the "Pull annotation" quick fix:

<p align="center">
<img border="0" src="http://testng.org/pictures/refactoring-pull-annotation.png" />
</p>

Reciprocally, you can move a class level <tt>@Test</tt> annotation onto all your public methods:

<p align="center">
<img border="0" src="http://testng.org/pictures/refactoring-push-annotation.png" />
</p>

<h4>Automatically importing <tt>asserts</tt></h4>

Apply a quick fix on an assert method to automatically import it:

<p align="center">
<img border="0" src="http://testng.org/pictures/quickfix-import.png" />
</p>

<!--
  Preferences and Properties
-->
<h3><a name="eclipse-preferences">9 - Preferences and Properties</a></h3>
<h4><a name="eclipse-workbench-preferences">9.1 - Workbench Preferences</a></h4>
TestNG workbench preferences:
<p align="center">
<img border="0" src="http://testng.org/pictures/preferences.png" />
</p>
<p>
The preferences here are shared among projects and launch configurations.
<ul>
<li><b>Output directory</b>: the path where to store the output including temp files, report files, etc. By default, the path is relative to each project except you check the option <b>Absolute ouput path</b> below.</li>
<li><b>Disalbe default listeners</b>: disable the default listeners when launch testng runtime</li>
<li><b>Show view when test complete</b>: active the TestNG result view when the test complete</li>
<li><b>Use Project TestNG jar</b>: It's default to be checked which means TestNG Eclipse Plugin will use the project TestNG jar (for example, the TestNG version managed with maven) when launch TestNG runtime. Otherwise, the TestNG eclipse plugin embedded TestNG version will be used.<br/>
When to check this option?
<ul>
  <li>you want it behviour as close as running outside IDE, e.g. with maven surefire plugin, since the Plugin embedded version of TestNG most likely different with the version of your project.</li>
  <li>you don't want the Plugin embedded plugin and it's dependent libs (e.g. snakeyaml, etc.) pollute your TestNG runtime classpath.</li>
</ul></li>
<li><b>Template XML file</b>: the absolute path of the template xml file used to genernate the custom test suite xml before launch</li>
<li><b>Excluded stack traces</b>: </li>
<li><b>Pre Defined Listeners</b>: </li>
</ul>
</p>

<h4><a name="eclipse-project-properties">9.2 - Project Properties</a></h4>
Project level properties:
<p align="center">
<img border="0" src="http://testng.org/pictures/project_properties.png" />
</p>
<p>
Here are properties on each project level, it will override the same properties if defined in <a class="summary" href="#eclipse-workbench-preferences">TestNG workbench preferences</a>
<ul>
<li><b>Output directory</b>: for example, in the figure above, I prefer to put the output to maven 'target' directory rather than the default one under project root</li>
<li><b>Watch testng-result.xml</b>:</li>
<li><b>Template XML file</b>: see in <a class="summary" href="#eclipse-workbench-preferences">TestNG workbench preferences</a></li>
<li><b>Use Project TestNG jar</b>: see in <a class="summary" href="#eclipse-workbench-preferences">TestNG workbench preferences</a></li>
<li><b>Pre Defined Listeners</b>: see in <a class="summary" href="#eclipse-workbench-preferences">TestNG workbench preferences</a></li>
</ul>
</p>

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

</body>