blob: 6c92ef5b6178e1efc88d726b8eb4001cab0f2751 [file] [log] [blame]
<html xmlns:v="urn:schemas-microsoft-com:vml"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:w="urn:schemas-microsoft-com:office:word"
xmlns:st1="urn:schemas-microsoft-com:office:smarttags"
xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
<meta name=ProgId content=Word.Document>
<meta name=Generator content="Microsoft Word 10">
<meta name=Originator content="Microsoft Word 10">
<link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1" type="text/css">
<link rel=File-List href="ajdt-doc_files/filelist.xml">
<link rel=Edit-Time-Data href="ajdt-doc_files/editdata.mso">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]-->
<title>How to run and write AJDT Tests</title>
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
name="City"/>
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
name="place"/>
<!--[if gte mso 9]><xml>
<o:DocumentProperties>
<o:Author>Adrian Colyer</o:Author>
<o:Template>Normal</o:Template>
<o:LastAuthor>Adrian Colyer</o:LastAuthor>
<o:Revision>19</o:Revision>
<o:TotalTime>130</o:TotalTime>
<o:Created>2003-08-20T19:23:00Z</o:Created>
<o:LastSaved>2004-06-11T10:15:00Z</o:LastSaved>
<o:Pages>1</o:Pages>
<o:Words>294</o:Words>
<o:Characters>1676</o:Characters>
<o:Company>IBM</o:Company>
<o:Lines>13</o:Lines>
<o:Paragraphs>3</o:Paragraphs>
<o:CharactersWithSpaces>1967</o:CharactersWithSpaces>
<o:Version>10.4219</o:Version>
</o:DocumentProperties>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:SpellingState>Clean</w:SpellingState>
<w:GrammarState>Clean</w:GrammarState>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
</w:WordDocument>
</xml><![endif]--><!--[if !mso]><object
classid="clsid:38481807-CA0E-42D2-BF39-B33AF135CC4D" id=ieooui></object>
<style>
st1\:*{behavior:url(#ieooui) }
</style>
<![endif]-->
<style>
<!--
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
h1
{mso-style-next:Normal;
margin-top:12.0pt;
margin-right:0cm;
margin-bottom:3.0pt;
margin-left:0cm;
mso-pagination:widow-orphan;
page-break-after:avoid;
mso-outline-level:1;
font-size:16.0pt;
font-family:Arial;
mso-font-kerning:16.0pt;}
h3
{mso-style-next:Normal;
margin-top:12.0pt;
margin-right:0cm;
margin-bottom:3.0pt;
margin-left:0cm;
mso-pagination:widow-orphan;
page-break-after:avoid;
mso-outline-level:3;
font-size:13.0pt;
font-family:Arial;}
a:link, span.MsoHyperlink
{color:blue;
text-decoration:underline;
text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
{color:purple;
text-decoration:underline;
text-underline:single;}
span.SpellE
{mso-style-name:"";
mso-spl-e:yes;}
@page Section1
{size:612.0pt 792.0pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;
mso-header-margin:35.4pt;
mso-footer-margin:35.4pt;
mso-paper-source:0;}
div.Section1
{page:Section1;}
/* List Definitions */
@list l0
{mso-list-id:295986775;
mso-list-template-ids:-282183872;}
@list l0:level1
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:36.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l1
{mso-list-id:388111931;
mso-list-template-ids:100153422;}
@list l1:level1
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:36.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l2
{mso-list-id:507717290;
mso-list-type:hybrid;
mso-list-template-ids:170065320 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l2:level1
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:36.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Symbol;}
@list l2:level2
{mso-level-tab-stop:72.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l2:level3
{mso-level-tab-stop:108.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l2:level4
{mso-level-tab-stop:144.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l2:level5
{mso-level-tab-stop:180.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l2:level6
{mso-level-tab-stop:216.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l2:level7
{mso-level-tab-stop:252.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l2:level8
{mso-level-tab-stop:288.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l2:level9
{mso-level-tab-stop:324.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l3
{mso-list-id:547187724;
mso-list-template-ids:-1035564768;}
@list l3:level1
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:36.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l4
{mso-list-id:782771140;
mso-list-template-ids:-1690274482;}
@list l4:level1
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:36.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l5
{mso-list-id:956566196;
mso-list-template-ids:-1899717194;}
@list l5:level1
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:36.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l6
{mso-list-id:997264750;
mso-list-template-ids:-209018736;}
@list l6:level1
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:36.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l7
{mso-list-id:1079206453;
mso-list-template-ids:-1917390934;}
@list l7:level1
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:36.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l8
{mso-list-id:1205605055;
mso-list-template-ids:-1351082324;}
@list l8:level1
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:36.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l9
{mso-list-id:1403602208;
mso-list-template-ids:852002448;}
@list l9:level1
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:36.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l10
{mso-list-id:1744907069;
mso-list-template-ids:-353174442;}
@list l10:level1
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:36.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l11
{mso-list-id:1901163408;
mso-list-type:hybrid;
mso-list-template-ids:1204457068 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l11:level1
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:36.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Symbol;}
@list l11:level2
{mso-level-tab-stop:72.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l11:level3
{mso-level-tab-stop:108.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l11:level4
{mso-level-tab-stop:144.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l11:level5
{mso-level-tab-stop:180.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l11:level6
{mso-level-tab-stop:216.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l11:level7
{mso-level-tab-stop:252.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l11:level8
{mso-level-tab-stop:288.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l11:level9
{mso-level-tab-stop:324.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;}
@list l12
{mso-list-id:1932279489;
mso-list-template-ids:1460992396;}
@list l12:level1
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:36.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
ol
{margin-bottom:0cm;}
ul
{margin-bottom:0cm;}
-->
</style>
<!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";}
</style>
<![endif]--><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="3074"/>
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1"/>
</o:shapelayout></xml><![endif]-->
</head>
<body lang=EN-US link=blue vlink=purple style='tab-interval:36.0pt'>
<div class=Section1>
<p class=MsoNormal align=right style='text-align:right'><i style='mso-bidi-font-style:
normal'><span lang=EN-GB style='mso-ansi-language:EN-GB'>Copyright © 2004 Eclipse.org.
All Rights Reserved<o:p></o:p></span></i></p>
<h1><span lang=EN-GB style='mso-ansi-language:EN-GB'>How to run and write AJDT Tests<o:p></o:p></span></h1>
<p class=MsoNormal><st1:City><st1:place><i style='mso-bidi-font-style:normal'><span
lang=EN-GB style='mso-ansi-language:EN-GB'>last updated</span></i></st1:place></st1:City><i
style='mso-bidi-font-style:normal'><span lang=EN-GB style='mso-ansi-language:
EN-GB'>, October 2004.<o:p></o:p></span></i></p>
<p class=MsoNormal><span lang=EN-GB style='mso-ansi-language:EN-GB'><o:p>&nbsp;</o:p></span></p>
<p class=MsoNormal><span lang=EN-GB style='mso-ansi-language:EN-GB'>The tests for AJDT are
in the org.eclipse.ajdt.test plugin which can be checked out of the Eclipse CVS repository:</p>
<ul>
<li>Host dev.eclipse.org</li>
<li>repository: /home/technology</li>
<li>userid: anonymous</li>
</ul>
<p>Once connected, navigate to HEAD &gt org.eclipse.ajdt and checkout the plugins
in the AJDT1.2src directory.</p>
<p>This document describes
how to run and write both automated
and manual AJDT Tests. Note that at the moment there is only one test plugin which contains tests
for both the ui and core which are now separated into the org.eclipse.ajdt.ui and org.eclipse.ajdt.core
plugins respectively. Our plan is to move to having separate test plugins, one for the ui and
one for the core functionality.</p>
<p class=MsoNormal><span lang=EN-GB style='mso-ansi-language:EN-GB'><o:p>&nbsp;</o:p></span></p>
<ul style='margin-top:0cm' type=disc>
<li class=MsoNormal style='mso-list:l1 level1 lfo3;tab-stops:list 36.0pt'><span
lang=EN-GB style='mso-ansi-language:EN-GB'><a href="#_Running">Running the AJDT Tests</a><o:p></o:p></span>
<ul style='margin-top:0cm' type=disc>
<li class=MsoNormal style='mso-list:l1 level1 lfo3;tab-stops:list 36.0pt'><span
lang=EN-GB style='mso-ansi-language:EN-GB'><a href="#_Running_Automated">Running the AJDT Automated Tests</a><o:p></o:p></span>
</li>
<li class=MsoNormal style='mso-list:l1 level1 lfo3;tab-stops:list 36.0pt'><span
lang=EN-GB style='mso-ansi-language:EN-GB'><a href="#_Running_Manual">Running the AJDT Manual Tests</a><o:p></o:p></span>
</li>
</ul>
</li>
<li class=MsoNormal style='mso-list:l1 level1 lfo3;tab-stops:list 36.0pt'><span
lang=EN-GB style='mso-ansi-language:EN-GB'><a
href="#_Writing">Writing AJDT Tests</a><o:p></o:p></span></li>
<ul style='margin-top:0cm' type=disc>
<li class=MsoNormal style='mso-list:l1 level1 lfo3;tab-stops:list 36.0pt'><span
lang=EN-GB style='mso-ansi-language:EN-GB'><a href="#_Writing_Automated">Writing AJDT Automated Tests</a><o:p></o:p></span>
</li>
<li class=MsoNormal style='mso-list:l1 level1 lfo3;tab-stops:list 36.0pt'><span
lang=EN-GB style='mso-ansi-language:EN-GB'><a href="#_Writing_Manual">Writing AJDT Manual Tests</a><o:p></o:p></span>
</li>
</ul>
</ul>
<p class=MsoNormal><span lang=EN-GB style='mso-ansi-language:EN-GB'><o:p>&nbsp;</o:p></span></p>
<p class=MsoNormal><span lang=EN-GB style='mso-ansi-language:EN-GB'><o:p>&nbsp;</o:p></span></p>
<table border=0 cellspacing=4 cellpadding=4 width="100%">
<tr>
<td bgcolor="#DDE2EC" class="smallParagraph" align="center">
<a name="_Running"></a><span lang=EN-GB style='mso-ansi-language:
EN-GB'><b>Running the AJDT Tests</b><o:p></o:p></span></a>
</td>
</tr>
</table>
<h3><a name="_Running_Automated"></a><span lang=EN-GB style='mso-ansi-language:
EN-GB'>Running the AJDT Automated Tests<o:p></o:p></span></h3>
<p>All the automated tests are found under the testsrc package in org.eclipse.ajdt.test. To run
them do the following:</p>
<ul>
<li>navigate to org.eclipse.ajdt.test/testsrc/org.eclipse.ajdt.test</li>
<li>right click on AllTests.java</li>
<li>in the context menu naviage to Run and select JUnit Plug-in Test</li>
</ul>
<p>This launches the AJDT automated testsuite.</p>
<p>To monitor the progress of the tests, or to see the results, open the JUnit view. If you want to
run a specific test, or testcase, then follow the same steps above, except this time navigate
in the package explorer to the testcase or test you wish to run.</p>
<p>As the tests run, output is sent to the console. In all cases, if the output isn't expected for
the test, then the test will fail. However, occasionally, due to timing issues and scheduling of
jobs in Eclipse 3.x, a couple of the tests may fail. We are currently looking into making these
tests more robust, but for the time being, rerun the failing tests when little other work is going
on on your machine and if they pass then assume everything is ok. Occasionally, Resource Exceptions
are seen with problems deleting resources. Deleting projects is not part of the tests, instead
it is part of the clean up, and so these can be ignored as not affecting the test run. Problems
deleting resources within AJ projects are being looked at in bug 75776.</p>
<p>Note that many of the automated tests use the test projects contained in the <b>test
projects</b> directory in the org.eclipse.ajdt.test plugin.</p>
<h3><a name="_Running_Manual"></a><span lang=EN-GB style='mso-ansi-language:
EN-GB'>Running the AJDT Manual Tests<o:p></o:p></span></h3>
<p>There are also a set of manual tests to run against AJDT. These are found in the <b>manual
testing</b> directory of the org.eclipse.ajdt.test plugin. The tests have been split into the
following categories:</p>
<ul>
<li>build configs - this includes manual tests for the build configuration setup</li>
<li>builder - this includes manual tests specific to building AspectJ projects, when builds
are automatically triggered etc.</li>
<li>documentation - these are the documentation tests which check that links work</li>
<li>editor - these tests are to do with the AspectJ editor</li>
<li>installation - these are the tests which cover the installation of AJDT under various
circumstances</li>
<li>javamodel - these are the manual tests which cover the java model work, for example,
what should be seen in the package explorer</li>
<li>launching - these are the tests which deal with launching AspectJ programs via the
Run menu</li>
<li>project dependencies - these tests cover various setup scenarios with multiple
projects</li>
<li>quick fix - these cover the quick fix facility</li>
<li>refactoring - these tests cover the refactoring capability</li>
<li>visualiser - these visualiser tests are specific to the AspectJ Provider for the visualiser.
For general visualiser tests, see the visualiser test project</li>
<li>wizards - this covers manual tests required for the various wizards</li>
</ul>
<p>There are also a few other manual tests, not put into a category, which are also run.</p>
<p>To run any of these tests, follow the instructions set out in the script. In many cases,
the tests use projects contained in the <b>test projects</b> directory in the
org.eclipse.ajdt.test plugin. These tests can be checked out as projects from cvs.</p>
<p class=MsoNormal><span lang=EN-GB style='mso-ansi-language:EN-GB'><o:p>&nbsp;</o:p></span></p>
<table border=0 cellspacing=4 cellpadding=4 width="100%">
<tr>
<td bgcolor="#DDE2EC" class="smallParagraph" align="center">
<a name="_Writing"></a><span lang=EN-GB style='mso-ansi-language:
EN-GB'><b>Writing AJDT Tests</b><o:p></o:p></span></a>
</td>
</tr>
</table>
<h3><a name="_Writing_Automated"></a><span lang=EN-GB style='mso-ansi-language:
EN-GB'>Writing AJDT Automated Tests<o:p></o:p></span></h3>
<p>Writing AJDT Automated tests is no different to writing JUnit tests for any other project. We
stay as close as we can to the convention that the package structure under testsrc mirrors
that of the org.eclipse.ajdt.ui and org.eclipse.ajdt.core plugins, with the testcase classes
being named as &lt Class to be tested &gtTest.java.</p>
<p>A utility has been written to make it easier to create projects to use as part of the
testing. This enables you to create the project, check it into CVS under the test projects
directory and then import it in your automated test (this prevents a lot of the scheduling
issues which happen due to the background running of many jobs in Eclipse 3.x).
We recommend that you use this in your automated tests. To make use of this feature, do the
following:</p>
<ul>
<li>Create a project, say called "My AJ Project", as you would like it to be and import it
into the test projects directory in org.eclipse.ajdt.test</li>
<li>At the beginning of your test include the following:
<pre>IProject myProject = Utils.getPredefinedProject("My AJ Project", true);</pre>
where true means that if it already exists, then overwrite.
</li>
<li>Force a build of the project by calling
<pre>myProject.build(IncrementalProjectBuilder.FULL_BUILD, null);</pre>
and off you go!
</li>
</ul>
<p>One other point to note when writing AJDT automated tests is to at the beginning
of the test unset the requirement for the user to respond to the AJDT Configuration Wizard
and to reverse this before exitting the test (this requirement should be removed
as we become more closely integrated with JDT). In otherwords, place the following at
the beginning of your test:
<pre>AspectJPreferences.setAJDTPrefConfigDone(true);</pre>
and then
<pre>AspectJPreferences.setAJDTPrefConfigDone(false);</pre>
at the end.
</p>
<p>Finally, if the test has been written in response to a bug, then note the bug number
in the comment above the test.</p>
<h3><a name="_Writing_Manual"></a><span lang=EN-GB style='mso-ansi-language:
EN-GB'>Writing AJDT Manual Tests<o:p></o:p></span></h3>
<p>Writing manual tests is pretty straightforward. Just decide on the appropriate section, create
a .txt file with an appropriate title (or add to an existing one) and write down the steps
needed to be followed to run the test. In all cases, ensure that someone can follow the steps
from scratch, including getting hold of the projects required for the test. If you need to create
new projects, then place them in the test projects directory so that they're easy to access. If
the test is in response to a bug fix, then note the bug number at the top of the test.</p>
<p class=MsoNormal><span lang=EN-GB style='mso-ansi-language:EN-GB'><o:p>&nbsp;</o:p></span></p>
</div>
</body>
</html>