| <?xml version="1.0" encoding="utf-8"?> | |
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" | |
| "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
| <html xmlns="http://www.w3.org/1999/xhtml"> | |
| <head> | |
| <title>RSE Test Framework</title> | |
| <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | |
| <meta http-equiv="Content-Style-Type" content="text/css" /> | |
| <link rel="stylesheet" type="text/css" href="../book.css" /> | |
| </head> | |
| <body> | |
| <h2>Plugging into the Test Suite View</h2> | |
| <p>The Test Suite View shows test cases that have registered with the plugin. | |
| This section describes how this is done. The tags provide for both static declaration and | |
| dynamic generation of test suites. You can define several suites and suite providers | |
| in a single extension as follows:</p> | |
| <pre class="code"> | |
| <extension point="org.eclipse.rse.tests.framework.suites"> | |
| <suite ... /> | |
| <suite ... /> | |
| <type ... /> | |
| <suite ... /> | |
| <type ... /> | |
| </extension> | |
| </pre> | |
| <h3>Defining A Test Suite</h3> | |
| <p>An existing JUnit test suite can be registered as follows:</p> | |
| <pre class="code"> | |
| <extension point="org.eclipse.rse.tests.framework.suites"> | |
| <suite type="standard" name="My Test Suite"> | |
| <arg name="class" value="com.xyz.MyTestSuite"> | |
| </suite> | |
| </extension> | |
| </pre> | |
| <p>This defines a test suite that shows up in the view as "My Test Suite". | |
| The <code>class</code> argument references a class that ultimately extends | |
| <code>junit.framework.TestSuite</code>. | |
| The <code>name</code> attribute is optional, but if it isn't specified the framework | |
| will ask the suite for its name.</p> | |
| <h3>Defining A Test Suite Provider</h3> | |
| <p>If you prefer to dynamically generate test suites based on external criteria, | |
| you can implement the <code>org.eclipse.rse.tests.framework.ITestSuiteProvider</code> | |
| interface. | |
| This allows you to programatically assemble a test suite from individual | |
| testcases based on whatever criteria present in the workbench that you wish to use, | |
| including an argument provided on the registration. To register your | |
| <code>ITestSuiteProvider</code> use the <code>suite</code> tag with the <code>generator</code> type.</p> | |
| <pre class="code"> | |
| <extension point="org.eclipse.rse.tests.framework.suites"> | |
| ... | |
| <suite type="generated" name="BVT Test Suite"> | |
| <arg name="class" value="com.xyz.MySuiteProvider"/> | |
| <arg name="argument" value="bvt"/> | |
| </suite> | |
| ... | |
| </extension> | |
| </pre> | |
| <p>See the examples and either the javadoc or the source code for ITestSuiteProvider.</p> | |
| <h3>Using The AnnotatingTestCase Class</h3> | |
| <p>The class <code>AnnotatingTestCase</code> can be used as a superclass for your tests instead of | |
| <code>junit.framework.TestCase</code>. This allows you to use the <code>remark(String)</code> | |
| method in your testcases to cause a line to be printed in the results pane before the final status of | |
| the tests. It's a reasonable replacement for <code>System.out.println()</code> | |
| if you want to have extra stuff print for your tests.</p> | |
| <h3>How Your Test Is Run</h3> | |
| <p>You test suite will run inside of a eclipse user job. | |
| This means you don't have direct access to the UI thread or | |
| any of its resources at this time unless you use the SWT <code>Display#execInUI</code> | |
| or <code>Display#syncExecInUI</code> methods. In the future, semi-automatic | |
| testing support will provide the ability for testing UI constructs from the test job.</p> | |
| <h3>Configuration And Prerequisites</h3> | |
| <p>The Test Suite View is contributed by the plugin | |
| <code>org.eclipse.rse.tests.framework</code>.</p> | |
| <p>Your test suites need only require those plugins that you directly | |
| reference -- which would be at least the <code>org.junit</code> plugin. If | |
| you implement TestSuiteProvider or use any of the utility classes for annotating | |
| the result log you must also require <code>org.eclipse.rse.tests.framework</code>.</p> | |
| <p>The plugin <code>org.eclipse.rse.tests.framework</code> does not | |
| depend on anything other than <code>org.junit</code> and | |
| <code>org.eclipse.*</code> plugins.</p> | |
| </body> | |
| </html> |