mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-04 23:55:26 +02:00
82 lines
4.3 KiB
HTML
82 lines
4.3 KiB
HTML
<?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>
|