Autotestsuite

Plug-in Builder uses the Autotestsuite for test automation. Autotestsuite is an Eclipse plugin which is included in Plug-in Builder per default but which can also be installed separately. The idea is to automatically find and run all tests based on naming conventions. On the one hand this frees you from maintaining test suites which contain all your tests (usually called All*TestSuite) on the other hand it helps you to establish project wide conventions. In addition to that that there is also no need to maintain further specification for automatic builds, e.g. ANT files where all your test plugins and test suites are configured.

Searching for tests happens in two stages: at first the test plugins are determined, then all the test cases within those test plugins. Both stages use regular expressions to filter elements: an element will be selected if it matches at least one include regular expression and does not match any exclusion regular expression.

The default convention is that the names of your test plugins end with "test" or "tests". Every class within these test plugins is a potential test case except if it matches one of the following strings: AllTests, AllPDE_Tests, All_Tests, AllPDETests. Every potential test case will be further scrutizined if it contains JUnit 3 or 4 tests. The four filter expressions are:

Include plugins:

.*(test|tests)$

Exclude plugins:

Include classes:

.*

Exclude classes:

.*All(Tests|PDETests|_Tests|PDETests).*

Launch Configuration

There is a launch configuration for the Autotestsuite so that you can check filter settings in your workspace. You can open the launch configuration either from the Test tab of Pluginbuilder editor or via main menu: Run->Open Run Dialog or Run->Open Debug Dialog.

Lets assume you want to change your project's conventions. Maybe you have gathered functional tests in test cases with prefix "FTC_". They should not be run during regular continuous builds since they might rely on external systems. In that case add a class exclusion rule ".*FTC_.*".

Please be aware that you are leaving the field of convention and are moving into specification if you rules become very fine grained.

Prerequisites

In the postBuild phase Plug-in builder creates a test host and installs the productive code and the test code into the test host.

It is recommended to separate the test code from the productive code and put the test code into separate plug-ins. In order to build the test plug-ins you can create a feature which contains all the tests plug-ins. Then add the test feature to the Feature list on the first page of the Plug-in Builder editor.

The Plug-in Builder editor provides a page for the configuration of the tests, see screenshot below.

The top most check box allows to enable or disable test automation. Maintain your filters in "Define Plug-in Set" and "Define Testcase Set".

Test Results

After the build a JUnit test report can be found in the results folder.