<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <title>Building and Running the Team/CVS Tests using Ant</title>
         
  <meta http-equiv="Content-Type"
 content="text/html; charset=iso-8859-1">
     
  <link rel="stylesheet" href="http://dev.eclipse.org/default_style.css"
 type="text/css">
</head>
  <body bgcolor="#ffffff" text="#000000">

<h1> Building and Running the Team/CVS Tests using Ant</h1>

<h2>Building the Team/CVS tests</h2>

To build the TEam/CVS test plugins, perform the following steps:

<ol>

  <li>Import the following plugins using the <b>Import External Plugins and Fragments</b> wizard:
    <ol>
	<li><i>org.eclipse.team.*</i> plugins and all required plugins</li>
	<li><i>org.junit</i> and any required plugins</li>
	</ol>
  </li>

  <li>Check out the following plug-ins from dev.eclipse.org:
    <ol>
    <li><i>org.eclipse.core.tests.harness</i></li>
    <li><i>org.eclipse.team.tests.core</i></li>
	<li><i>org.eclipse.team.tests.cvs.core</i></li>
	</ol>
  </li>

  <li>In org.eclipse.team.tests.cvs.core, select the file <i>build-tests.xml</i> and choose
  <b>Run Ant...</b> from the popup menu. A zip archieve of the CVS test plugins is created
  in the org.eclipse.team.tests.cvs.core project.
  </li>
  
</ol>

<h2>Setting up the Eclipse install to be used to run the tests</h2>

To run the tests built above, perform the following steps:

<ol>

  <li>Install eclipse to you test directory.</li>

  <li>Install the eclipse test harness plug-ins and fragments over the above install</li>

  <li>Extract the team test plugin archive created above into the test Eclipse install.</li>

  <li>The CVS tests require a repository to test with. Modify the repository.properties file in plug-in <i>org.eclipse.team.tests.cvs.core</i> 
  to contain the information required to connect to your repository.
  Important fields in the repository properties file are:
    <ul>
       <li><i>repository</i> - the location string that identifies your test repository.
       This string should be of the format ":method:user:password@host:/repo/path"
       </li>
       <li><i>initrepo</i> - true if you want to initialize the repository before beginning.
       It is not essential to initialize the repository, as the tests will create unique test
       project names.
       <li><i>rsh</i> - the rsh (or ssh) client used to initialize the repository
 	   <br/><b>Note:</b> Your repository must allow rsh connections from your userid and machine in order for
	   the tests to run when initrepo is set to true. If ssh is used, it must be configured to connect
	   when provided with  the parameters "host -l username" (i.e. setup to use keys).
	   </li>
	</ul>
	<p>There is a sample repository.properties file provided in <i>org.eclipse.team.tests.cvs.core</i>.
	The additional properties are for more in-depth tests.</p>
	<p><b>Note:</b> If you want to keep a repositories.properties file in a separate directory,
	this directory can be provided to the test script run below as the "team-home" parameter.</p>
  </li>

  <li>Run the test.xml Ant script using the following command line from the eclipse directory:
    <ul>
    <li>For Team:<br/>
  java -cp startup.jar org.eclipse.core.launcher.Main -application org.eclipse.ant.core.antRunner -file plugins/org.eclipse.team.tests.core/test.xml run -dev bin -noupdate
    </li>
    <li>For CVS:<br/>
  java -cp startup.jar org.eclipse.core.launcher.Main -application org.eclipse.ant.core.antRunner -file plugins/org.eclipse.team.tests.cvs.core/test.xml run -dev bin -noupdate
    </li>
    </ul>
  </li>
  
  </body>
</html>