<html>
    <head>
        <title>TestNG - Download Current Release and Beta Versions</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("download.html")
</script>


<h2 align="center">Downloading TestNG</h2>

<h3>Current Release Version</h3>

<p> The latest version of TestNG can be downloaded from <a href="http://search.maven.org/#search%7Cga%7C1%7Ca%3A%22testng%22">Maven Central</a>. </p>
<p>For the Eclipse plug-in, we suggest using the update site:</p>
<ul>
	<li>Select<i> Help / Software updates / Find and Install.</i> 
	</li>
	<li><i>Search for new features to install.</i> 
	</li>
	<li><i>New remote site.</i> 
	</li>
	<li>For Eclipse 3.4 and above, enter <a href="http://beust.com/eclipse">http://beust.com/eclipse</a>.
	<li>For Eclipse 3.3 and below, enter <a href="http://beust.com/eclipse1">http://beust.com/eclipse1</a>.
	</li>
	<li>Make sure the check box next to URL is checked and click <i>Next</i>. 
	</li>
	<li>Eclipse will then guide you through the process. </li>
</ul>

<p>You can also install older versions of the plug-ins <a href="http://beust.com/eclipse-old">here</a>. Note that the URL's on this page are update sites as well, not direct download links.

<p>TestNG is also <a href="http://github.com/cbeust/testng">hosted on GitHub</a>, where you can download the source and build the distribution yourself:

<pre class="brush: plain">
$ git clone git://github.com/cbeust/testng.git
$ cd testng
$ mvn package
</pre>

<p>You will then find the jar file in the <tt>target</tt> directory</p>

<h3>Beta Version</h3>

<p>The beta version contains changes that have been committed to the repo since the current release.</p>
<p>Take a look at <a href="https://github.com/cbeust/testng/blob/master/CHANGES.txt">CHANGES.txt</a> to see if the change you want is included in the beta (listed under "Current").</p>
<p>You can <a href="/beta">download the beta version here</a>.</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>

</html>
