blob: 4761f45cda1df68bff8eadbb5eba8aa05defc6a4 [file] [log] [blame]
<!DOCTYPE html>
<!--
| Generated by Apache Maven Doxia at 2014-07-14
| Rendered using Apache Maven Fluido Skin 1.3.0
-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="Date-Revision-yyyymmdd" content="20140714" />
<meta http-equiv="Content-Language" content="en" />
<title>Tycho Surefire Plugin (Incubation) -
tycho-surefire:test</title>
<link rel="stylesheet" href="./css/apache-maven-fluido-1.3.0.min.css" />
<link rel="stylesheet" href="./css/site.css" />
<link rel="stylesheet" href="./css/print.css" media="print" />
<script type="text/javascript" src="./js/apache-maven-fluido-1.3.0.min.js"></script>
</head>
<body class="topBarDisabled">
<div class="container-fluid">
<div id="banner">
<div class="pull-left">
<div id="bannerLeft">
<h2>Tycho Surefire Plugin (Incubation)</h2>
</div>
</div>
<div class="pull-right"> </div>
<div class="clear"><hr/></div>
</div>
<div id="breadcrumbs">
<ul class="breadcrumb">
<li id="publishDate">Last Published: 2014-07-14</li>
<li class="divider">|</li> <li id="projectVersion">Version: 0.21.0</li>
<li class="pull-right"> <a href="http://wiki.eclipse.org/Development_Resources/HOWTO/Incubation_Phase#.281.29_What_Is_Incubation.3F" class="externalLink" title="This content is PRELIMINARY API and still subject to change">
This content is PRELIMINARY API and still subject to change</a>
</li>
</ul>
</div>
<div class="row-fluid">
<div id="leftColumn" class="span3">
<div class="well sidebar-nav">
<ul class="nav nav-list">
<li class="nav-header">Tycho</li>
<li>
<a href="../../index.html" title="Introduction">
<i class="none"></i>
Introduction</a>
</li>
<li>
<a href="../../tycho-compiler-plugin/plugin-info.html" title="Compiler Plugin">
<i class="none"></i>
Compiler Plugin</a>
</li>
<li>
<a href="../../tycho-packaging-plugin/plugin-info.html" title="Packaging Plugin">
<i class="none"></i>
Packaging Plugin</a>
</li>
<li>
<a href="../../BuildProperties.html" title="Build Properties">
<i class="none"></i>
Build Properties</a>
</li>
<li>
<a href="../../tycho-surefire/tycho-surefire-plugin/plugin-info.html" title="Surefire Plugin">
<i class="none"></i>
Surefire Plugin</a>
</li>
<li>
<a href="../../tycho-p2/tycho-p2-publisher-plugin/plugin-info.html" title="p2 Publisher Plugin">
<i class="none"></i>
p2 Publisher Plugin</a>
</li>
<li>
<a href="../../tycho-p2/tycho-p2-repository-plugin/plugin-info.html" title="p2 Repository Plugin">
<i class="none"></i>
p2 Repository Plugin</a>
</li>
<li>
<a href="../../tycho-p2/tycho-p2-director-plugin/plugin-info.html" title="p2 Director Plugin">
<i class="none"></i>
p2 Director Plugin</a>
</li>
<li>
<a href="../../tycho-source-plugin/plugin-info.html" title="Source Plugin">
<i class="none"></i>
Source Plugin</a>
</li>
<li>
<a href="../../tycho-release/tycho-versions-plugin/plugin-info.html" title="Versions Plugin">
<i class="none"></i>
Versions Plugin</a>
</li>
<li>
<a href="../../tycho-pomgenerator-plugin/plugin-info.html" title="POM Generator Plugin">
<i class="none"></i>
POM Generator Plugin</a>
</li>
</ul>
<hr class="divider" />
<div id="poweredBy">
<div class="clear"></div>
<div class="clear"></div>
<div class="clear"></div>
<a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
<img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
</a>
</div>
</div>
</div>
<div id="bodyColumn" class="span9" >
<div class="section">
<h2>tycho-surefire:test<a name="tycho-surefire:test"></a></h2>
<p><b>Full name</b>:</p>
<p>org.eclipse.tycho:tycho-surefire-plugin:0.21.0:test</p>
<p><b>Description</b>:</p>
<div>
<p>Executes tests in an OSGi runtime.</p>
<p>The goal launches an OSGi runtime and executes the project's
tests in that runtime. The &quot;test runtime&quot; consists of the bundle
built in this project and its transitive dependencies, plus some
Equinox and test harness bundles. The bundles are resolved from the
target platform of the project. Note that the test runtime does
typically <i>not</i> contain the entire target platform. If there
are implicitly required bundles (e.g.
<tt>org.eclipse.equinox.ds</tt> to make declarative services work),
they need to be added manually through an explicit
<tt>dependencies</tt> configuration.</p></div>
<p><b>Attributes</b>:</p>
<ul>
<li>Requires a Maven project to be executed.</li>
<li>Requires dependency resolution of artifacts in scope: <tt>runtime</tt>.</li>
<li>Binds by default to the <a class="externalLink" href="http://maven.apache.org/ref/current/maven-core/lifecycles.html">lifecycle phase</a>: <tt>integration-test</tt>.</li>
</ul>
<div class="section">
<h3>Optional Parameters<a name="Optional_Parameters"></a></h3>
<table class="table table-striped" border="0">
<tr class="a">
<th>Name</th>
<th>Type</th>
<th>Since</th>
<th>Description</th>
</tr>
<tr class="b">
<td><b><a href="#appArgLine">appArgLine</a></b></td>
<td><tt>String</tt></td>
<td><tt>-</tt></td>
<td>
<p>Arbitrary applications arguments to set on the command line.</p><br /></td>
</tr>
<tr class="a">
<td><b><a href="#application">application</a></b></td>
<td><tt>String</tt></td>
<td><tt>-</tt></td>
<td>
<p>Eclipse application to be run. If not specified, default
application org.eclipse.ui.ide.workbench will be used. Application
runnable will be invoked from test harness, not directly from
Eclipse.</p><br /></td>
</tr>
<tr class="b">
<td><b><a href="#argLine">argLine</a></b></td>
<td><tt>String</tt></td>
<td><tt>-</tt></td>
<td>
<p>Arbitrary JVM options to set on the command line.</p><br /><b>User property is</b>: <tt>tycho.testArgLine</tt>.</td>
</tr>
<tr class="a">
<td><b><a href="#bundleStartLevel">bundleStartLevel</a></b></td>
<td><tt>BundleStartLevel[]</tt></td>
<td><tt>-</tt></td>
<td>
<p>Bundle start level and auto start configuration used by the test
runtime. Ignored if <tt>testRuntime</tt> is
<tt>p2Installed</tt>.</p><br /></td>
</tr>
<tr class="b">
<td><b><a href="#debugPort">debugPort</a></b></td>
<td><tt>int</tt></td>
<td><tt>-</tt></td>
<td>
<p>Set this parameter to suspend the test JVM waiting for a client
to open a remote debug session on the specified port.</p><br /><b>User property is</b>: <tt>debugPort</tt>.</td>
</tr>
<tr class="a">
<td><b><a href="#deleteOsgiDataDirectory">deleteOsgiDataDirectory</a></b></td>
<td><tt>boolean</tt></td>
<td><tt>-</tt></td>
<td>Whether to recursively delete the directory
<tt>osgiDataDirectory</tt> before running the tests.<br /><b>Default value is</b>: <tt>true</tt>.<br /></td>
</tr>
<tr class="b">
<td><b><a href="#dependencies">dependencies</a></b></td>
<td><tt>Dependency[]</tt></td>
<td><tt>-</tt></td>
<td>
<p>Additional dependencies to be added to the test runtime.</p>
<p>The dependencies specified here are - together with the
dependencies specified in the <tt>MANIFEST.MF</tt> of the project -
resolved against the target platform. The resulting set of bundles
is included in the test runtime. Ignored if
<tt>testRuntime</tt> is <tt>p2Installed</tt>.</p><br /></td>
</tr>
<tr class="a">
<td><b><a href="#environmentVariables">environmentVariables</a></b></td>
<td><tt>Map</tt></td>
<td><tt>-</tt></td>
<td>
<p>Additional environments to set for the forked test JVM.</p><br /></td>
</tr>
<tr class="b">
<td><b><a href="#excludes">excludes</a></b></td>
<td><tt>List</tt></td>
<td><tt>-</tt></td>
<td>
<p>List of patterns (separated by commas) used to specify the tests
that should be excluded in testing. When not specified and when the
<tt>test</tt> parameter is not specified, the default excludes
will be <tt>**/*$*</tt> (which excludes all inner classes).</p><br /></td>
</tr>
<tr class="a">
<td><b><a href="#explodedBundles">explodedBundles</a></b></td>
<td><tt>String[]</tt></td>
<td><tt>-</tt></td>
<td>
<p>List of bundles that must be expanded in order to execute the
tests. Ignored if <tt>testRuntime</tt> is
<tt>p2Installed</tt>.</p><br /></td>
</tr>
<tr class="b">
<td><b><a href="#failIfNoTests">failIfNoTests</a></b></td>
<td><tt>boolean</tt></td>
<td><tt>-</tt></td>
<td>
<p>If set to &quot;false&quot; the test execution will not fail in case there
are no tests found.</p><br /><b>Default value is</b>: <tt>true</tt>.<br /><b>User property is</b>: <tt>failIfNoTests</tt>.</td>
</tr>
<tr class="a">
<td><b><a href="#forkedProcessTimeoutInSeconds">forkedProcessTimeoutInSeconds</a></b></td>
<td><tt>int</tt></td>
<td><tt>-</tt></td>
<td>
<p>Kill the forked test process after a certain number of seconds.
If set to 0, wait forever for the process, never timing out.</p><br /><b>User property is</b>: <tt>surefire.timeout</tt>.</td>
</tr>
<tr class="b">
<td><b><a href="#frameworkExtensions">frameworkExtensions</a></b></td>
<td><tt>Dependency[]</tt></td>
<td><tt>-</tt></td>
<td>
<p>List of framework extension bundles to add. Note: The goal does
not automatically detect which bundles in the test runtime are
framework extensions, but they have to be explicitly specified
using this parameter. Ignored if <tt>testRuntime</tt> is
<tt>p2Installed</tt>.</p><br /></td>
</tr>
<tr class="a">
<td><b><a href="#includes">includes</a></b></td>
<td><tt>List</tt></td>
<td><tt>-</tt></td>
<td>
<p>List of patterns (separated by commas) used to specify the tests
that should be included in testing. When not specified and whent
the <tt>test</tt> parameter is not specified, the default
includes will be <tt>**/Test*.java **/*Test.java
**/*TestCase.java</tt></p><br /></td>
</tr>
<tr class="b">
<td><b><a href="#osgiDataDirectory">osgiDataDirectory</a></b></td>
<td><tt>File</tt></td>
<td><tt>-</tt></td>
<td><a class="externalLink" href="http://help.eclipse.org/juno/topic/org.eclipse.platform.doc.isv/reference/misc/runtime-options.html#osgiinstancearea">OSGi
data directory</a> (<tt>osgi.instance.area</tt>, aka the
workspace) of the Equinox runtime used to execute tests.<br /><b>Default value is</b>: <tt>${project.build.directory}/work/data/</tt>.<br /></td>
</tr>
<tr class="a">
<td><b><a href="#parallel">parallel</a></b></td>
<td><tt>ParallelMode</tt></td>
<td><tt>0.16.0</tt></td>
<td>
<p>(JUnit 4.7 provider) Supports values &quot;classes&quot;/&quot;methods&quot;/&quot;both&quot;
to run in separate threads, as controlled by threadCount.</p><br /><b>User property is</b>: <tt>parallel</tt>.</td>
</tr>
<tr class="b">
<td><b><a href="#perCoreThreadCount">perCoreThreadCount</a></b></td>
<td><tt>boolean</tt></td>
<td><tt>0.16.0</tt></td>
<td>
<p>(JUnit 4.7 provider) Indicates that threadCount is per cpu
core.</p><br /><b>Default value is</b>: <tt>true</tt>.<br /><b>User property is</b>: <tt>perCoreThreadCount</tt>.</td>
</tr>
<tr class="a">
<td><b><a href="#pluginArtifacts">pluginArtifacts</a></b></td>
<td><tt>List</tt></td>
<td><tt>-</tt></td>
<td>(no description)<br /><b>User property is</b>: <tt>plugin.artifacts</tt>.</td>
</tr>
<tr class="b">
<td><b><a href="#product">product</a></b></td>
<td><tt>String</tt></td>
<td><tt>-</tt></td>
<td>
<p>Eclipse product to be run, i.e. -product parameter passed to
test Eclipse runtime.</p><br /></td>
</tr>
<tr class="a">
<td><b><a href="#profileName">profileName</a></b></td>
<td><tt>String</tt></td>
<td><tt>0.19.0</tt></td>
<td>p2 <a class="externalLink" href="http://help.eclipse.org/kepler/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Fguide%2Fp2_director.html">profile</a>
name of the installation under test. Only relevant if
<tt>testRuntime</tt> is <tt>p2Installed</tt>. If tests are
installed on top of an already existing installation in
<tt>work</tt>, this must match the name of the existing
profile.<br /><b>Default value is</b>: <tt>DefaultProfile</tt>.<br /></td>
</tr>
<tr class="b">
<td><b><a href="#providerHint">providerHint</a></b></td>
<td><tt>String</tt></td>
<td><tt>0.16.0</tt></td>
<td>
<p>Normally tycho will automatically determine the test framework
provider based on the test project's classpath. Use this to force
using a test framework provider implementation with the given role
hint. Tycho comes with providers &quot;junit3&quot;,&quot;junit4&quot;,&quot;junit47&quot;. Note
that when specifying a providerHint, you have to make sure the
provider is actually available in the dependencies of
tycho-surefire-plugin.</p><br /></td>
</tr>
<tr class="a">
<td><b><a href="#providerProperties">providerProperties</a></b></td>
<td><tt>Properties</tt></td>
<td><tt>0.16.0</tt></td>
<td>
<p>Use this to specify surefire provider-specific properties.</p><br /></td>
</tr>
<tr class="b">
<td><b><a href="#redirectTestOutputToFile">redirectTestOutputToFile</a></b></td>
<td><tt>boolean</tt></td>
<td><tt>-</tt></td>
<td>
<p>Set this to &quot;true&quot; to redirect the unit test standard output to
a file (found in reportsDirectory/testName-output.txt).</p><br /><b>Default value is</b>: <tt>false</tt>.<br /><b>User property is</b>: <tt>maven.test.redirectTestOutputToFile</tt>.</td>
</tr>
<tr class="a">
<td><b><a href="#reportsDirectory">reportsDirectory</a></b></td>
<td><tt>File</tt></td>
<td><tt>-</tt></td>
<td>
<p>Base directory where all reports are written to.</p><br /><b>Default value is</b>: <tt>${project.build.directory}/surefire-reports</tt>.<br /></td>
</tr>
<tr class="b">
<td><b><a href="#runOrder">runOrder</a></b></td>
<td><tt>String</tt></td>
<td><tt>0.19.0</tt></td>
<td>
<p>Defines the order the tests will be run in. Supported values are
&quot;alphabetical&quot;, &quot;reversealphabetical&quot;, &quot;random&quot;, &quot;hourly&quot;
(alphabetical on even hours, reverse alphabetical on odd hours) and
&quot;filesystem&quot;.</p><br /><b>Default value is</b>: <tt>filesystem</tt>.<br /></td>
</tr>
<tr class="a">
<td><b><a href="#showEclipseLog">showEclipseLog</a></b></td>
<td><tt>boolean</tt></td>
<td><tt>-</tt></td>
<td>
<p>Enables -debug -consolelog for the test OSGi runtime</p><br /><b>Default value is</b>: <tt>false</tt>.<br /><b>User property is</b>: <tt>tycho.showEclipseLog</tt>.</td>
</tr>
<tr class="b">
<td><b><a href="#skip">skip</a></b></td>
<td><tt>boolean</tt></td>
<td><tt>-</tt></td>
<td>
<p>Same as <tt>skipTests</tt></p><br /><b>Default value is</b>: <tt>false</tt>.<br /><b>User property is</b>: <tt>maven.test.skip</tt>.</td>
</tr>
<tr class="a">
<td><b><a href="#skipExec">skipExec</a></b></td>
<td><tt>boolean</tt></td>
<td><tt>-</tt></td>
<td><b>Deprecated.</b> Use skipTests instead.<br /><b>Default value is</b>: <tt>false</tt>.<br /><b>User property is</b>: <tt>maven.test.skipExec</tt>.</td>
</tr>
<tr class="b">
<td><b><a href="#skipTests">skipTests</a></b></td>
<td><tt>boolean</tt></td>
<td><tt>-</tt></td>
<td>
<p>Set this to &quot;true&quot; to skip running tests, but still compile
them. Its use is NOT RECOMMENDED, but quite convenient on
occasion.</p><br /><b>Default value is</b>: <tt>false</tt>.<br /><b>User property is</b>: <tt>skipTests</tt>.</td>
</tr>
<tr class="a">
<td><b><a href="#surefireProperties">surefireProperties</a></b></td>
<td><tt>File</tt></td>
<td><tt>-</tt></td>
<td>(no description)<br /><b>Default value is</b>: <tt>${project.build.directory}/surefire.properties</tt>.<br /></td>
</tr>
<tr class="b">
<td><b><a href="#systemProperties">systemProperties</a></b></td>
<td><tt>Map</tt></td>
<td><tt>-</tt></td>
<td>
<p>Additional system properties to set for the forked test JVM.</p><br /></td>
</tr>
<tr class="a">
<td><b><a href="#test">test</a></b></td>
<td><tt>String</tt></td>
<td><tt>-</tt></td>
<td>
<p>Specify this parameter if you want to use the test pattern
matching notation, Ant pattern matching, to select tests to run.
The Ant pattern will be used to create an include pattern formatted
like <tt>**/${test}.java</tt> When used, the
<tt>includes</tt> and <tt>excludes</tt> patterns parameters
are ignored</p><br /><b>User property is</b>: <tt>test</tt>.</td>
</tr>
<tr class="b">
<td><b><a href="#testClass">testClass</a></b></td>
<td><tt>String</tt></td>
<td><tt>-</tt></td>
<td>
<p>See testSuite</p><br /><b>User property is</b>: <tt>testClass</tt>.</td>
</tr>
<tr class="a">
<td><b><a href="#testClassesDirectory">testClassesDirectory</a></b></td>
<td><tt>File</tt></td>
<td><tt>-</tt></td>
<td>
<p>The directory containing generated test classes of the project
being tested.</p><br /><b>User property is</b>: <tt>project.build.outputDirectory</tt>.</td>
</tr>
<tr class="b">
<td><b><a href="#testFailureIgnore">testFailureIgnore</a></b></td>
<td><tt>boolean</tt></td>
<td><tt>-</tt></td>
<td>
<p>Set this to true to ignore a failure during testing. Its use is
NOT RECOMMENDED, but quite convenient on occasion.</p><br /><b>Default value is</b>: <tt>false</tt>.<br /><b>User property is</b>: <tt>maven.test.failure.ignore</tt>.</td>
</tr>
<tr class="a">
<td><b><a href="#testRuntime">testRuntime</a></b></td>
<td><tt>String</tt></td>
<td><tt>0.19.0</tt></td>
<td>
<p>How to create the OSGi test runtime. Allowed values are
<tt>default</tt> and <tt>p2Installed</tt>. Mode
<tt>p2Installed</tt> is <b>EXPERIMENTAL</b> - only works when
installing products under test (see below).</p>
<ul>
<li>In <tt>default</tt> mode, all necessary files to define the
test runtime like <tt>config.ini</tt> are generated by tycho. This
installation mode has the advantage that the test runtime is
minimal (defined by the transitive dependencies of the test bundle
plus and the test harness) and existing bundle jars are referenced
rather than copied for the installation</li>
<li>In <tt>p2Installed</tt> mode, use p2 director to install
test bundle, test harness bundles and respective dependencies. This
installation mode can be used for integration tests that require a
fully p2-provisioned installation. To install a product IU, add it
as extra requirement to the test bundle (see example below). Note
that this installation mode comes with a certain performance
overhead for executing the provisioning operations otherwise not
required.</li>
</ul>
Example configuration which will install product IU under test
&quot;example.product.id&quot; using p2:
<div>
<pre>
&lt;plugin&gt;
&lt;groupId&gt;org.eclipse.tycho&lt;/groupId&gt;
&lt;artifactId&gt;tycho-surefire-plugin&lt;/artifactId&gt;
&lt;version&gt;${tycho-version}&lt;/version&gt;
&lt;configuration&gt;
&lt;testRuntime&gt;p2Installed&lt;/testRuntime&gt;
&lt;/configuration&gt;
&lt;/plugin&gt;
&lt;plugin&gt;
&lt;groupId&gt;org.eclipse.tycho&lt;/groupId&gt;
&lt;artifactId&gt;target-platform-configuration&lt;/artifactId&gt;
&lt;version&gt;${tycho-version}&lt;/version&gt;
&lt;configuration&gt;
&lt;dependency-resolution&gt;
&lt;extraRequirements&gt;
&lt;!-- product IU under test --&gt;
&lt;requirement&gt;
&lt;type&gt;p2-installable-unit&lt;/type&gt;
&lt;id&gt;example.product.id&lt;/id&gt;
&lt;versionRange&gt;0.0.0&lt;/versionRange&gt;
&lt;/requirement&gt;
&lt;/extraRequirements&gt;
&lt;/dependency-resolution&gt;
&lt;/configuration&gt;
&lt;/plugin&gt;
</pre></div>
<br />
<br /><br /><b>Default value is</b>: <tt>default</tt>.<br /></td>
</tr>
<tr class="b">
<td><b><a href="#testSuite">testSuite</a></b></td>
<td><tt>String</tt></td>
<td><tt>-</tt></td>
<td>
<p>Bundle-SymbolicName of the test suite, a special bundle that
knows how to locate and execute all relevant tests.</p>
<p>testSuite and testClass identify single test class to run. All
other tests will be ignored if both testSuite and testClass are
provided. It is an error if provide one of the two parameters but
not the other.</p><br /><b>User property is</b>: <tt>testSuite</tt>.</td>
</tr>
<tr class="a">
<td><b><a href="#threadCount">threadCount</a></b></td>
<td><tt>int</tt></td>
<td><tt>0.16.0</tt></td>
<td>
<p>(JUnit 4.7 provider) The attribute thread-count allows you to
specify how many threads should be allocated for this execution.
Only makes sense to use in conjunction with the parallel
parameter.</p><br /><b>User property is</b>: <tt>threadCount</tt>.</td>
</tr>
<tr class="b">
<td><b><a href="#useUIHarness">useUIHarness</a></b></td>
<td><tt>boolean</tt></td>
<td><tt>-</tt></td>
<td>
<p>Run tests using UI (true) or headless (false) test harness.</p><br /><b>Default value is</b>: <tt>false</tt>.<br /></td>
</tr>
<tr class="a">
<td><b><a href="#useUIThread">useUIThread</a></b></td>
<td><tt>boolean</tt></td>
<td><tt>-</tt></td>
<td>
<p>Run tests in UI (true) or background (false) thread. Only
applies to UI test harness.</p><br /><b>Default value is</b>: <tt>true</tt>.<br /></td>
</tr>
<tr class="b">
<td><b><a href="#useUnlimitedThreads">useUnlimitedThreads</a></b></td>
<td><tt>boolean</tt></td>
<td><tt>0.16.0</tt></td>
<td>
<p>(JUnit 4.7 provider) Indicates that the thread pool will be
unlimited. The parallel parameter and the actual number of
classes/methods will decide. Setting this to &quot;true&quot; effectively
disables perCoreThreadCount and threadCount.</p><br /><b>Default value is</b>: <tt>false</tt>.<br /><b>User property is</b>: <tt>useUnlimitedThreads</tt>.</td>
</tr>
<tr class="a">
<td><b><a href="#work">work</a></b></td>
<td><tt>File</tt></td>
<td><tt>-</tt></td>
<td>
<p>Root directory (<a class="externalLink" href="http://help.eclipse.org/indigo/topic/org.eclipse.platform.doc.isv/reference/misc/runtime-options.html#osgiinstallarea">osgi.install.area</a>)
of the Equinox runtime used to execute tests.</p><br /><b>Default value is</b>: <tt>${project.build.directory}/work</tt>.<br /></td>
</tr>
</table>
</div>
<div class="section">
<h3>Parameter Details<a name="Parameter_Details"></a></h3>
<p><b><a name="appArgLine">appArgLine</a>:</b></p>
<div>
<p>Arbitrary applications arguments to set on the command line.</p></div>
<ul>
<li><b>Type</b>: <tt>java.lang.String</tt></li>
<li><b>Required</b>: <tt>No</tt></li>
</ul><hr />
<p><b><a name="application">application</a>:</b></p>
<div>
<p>Eclipse application to be run. If not specified, default
application org.eclipse.ui.ide.workbench will be used. Application
runnable will be invoked from test harness, not directly from
Eclipse.</p></div>
<ul>
<li><b>Type</b>: <tt>java.lang.String</tt></li>
<li><b>Required</b>: <tt>No</tt></li>
</ul><hr />
<p><b><a name="argLine">argLine</a>:</b></p>
<div>
<p>Arbitrary JVM options to set on the command line.</p></div>
<ul>
<li><b>Type</b>: <tt>java.lang.String</tt></li>
<li><b>Required</b>: <tt>No</tt></li>
<li><b>User Property</b>: <tt>tycho.testArgLine</tt></li>
</ul><hr />
<p><b><a name="bundleStartLevel">bundleStartLevel</a>:</b></p>
<div>
<p>Bundle start level and auto start configuration used by the test
runtime. Ignored if <tt>testRuntime</tt> is
<tt>p2Installed</tt>.</p></div>
<ul>
<li><b>Type</b>: <tt>org.eclipse.sisu.equinox.launching.BundleStartLevel[]</tt></li>
<li><b>Required</b>: <tt>No</tt></li>
</ul><hr />
<p><b><a name="debugPort">debugPort</a>:</b></p>
<div>
<p>Set this parameter to suspend the test JVM waiting for a client
to open a remote debug session on the specified port.</p></div>
<ul>
<li><b>Type</b>: <tt>int</tt></li>
<li><b>Required</b>: <tt>No</tt></li>
<li><b>User Property</b>: <tt>debugPort</tt></li>
</ul><hr />
<p><b><a name="deleteOsgiDataDirectory">deleteOsgiDataDirectory</a>:</b></p>
<div>Whether to recursively delete the directory
<tt>osgiDataDirectory</tt> before running the tests.</div>
<ul>
<li><b>Type</b>: <tt>boolean</tt></li>
<li><b>Required</b>: <tt>No</tt></li>
<li><b>Default</b>: <tt>true</tt></li>
</ul><hr />
<p><b><a name="dependencies">dependencies</a>:</b></p>
<div>
<p>Additional dependencies to be added to the test runtime.</p>
<p>The dependencies specified here are - together with the
dependencies specified in the <tt>MANIFEST.MF</tt> of the project -
resolved against the target platform. The resulting set of bundles
is included in the test runtime. Ignored if
<tt>testRuntime</tt> is <tt>p2Installed</tt>.</p></div>
<ul>
<li><b>Type</b>: <tt>org.apache.maven.model.Dependency[]</tt></li>
<li><b>Required</b>: <tt>No</tt></li>
</ul><hr />
<p><b><a name="environmentVariables">environmentVariables</a>:</b></p>
<div>
<p>Additional environments to set for the forked test JVM.</p></div>
<ul>
<li><b>Type</b>: <tt>java.util.Map</tt></li>
<li><b>Required</b>: <tt>No</tt></li>
</ul><hr />
<p><b><a name="excludes">excludes</a>:</b></p>
<div>
<p>List of patterns (separated by commas) used to specify the tests
that should be excluded in testing. When not specified and when the
<tt>test</tt> parameter is not specified, the default excludes
will be <tt>**/*$*</tt> (which excludes all inner classes).</p></div>
<ul>
<li><b>Type</b>: <tt>java.util.List</tt></li>
<li><b>Required</b>: <tt>No</tt></li>
</ul><hr />
<p><b><a name="explodedBundles">explodedBundles</a>:</b></p>
<div>
<p>List of bundles that must be expanded in order to execute the
tests. Ignored if <tt>testRuntime</tt> is
<tt>p2Installed</tt>.</p></div>
<ul>
<li><b>Type</b>: <tt>java.lang.String[]</tt></li>
<li><b>Required</b>: <tt>No</tt></li>
</ul><hr />
<p><b><a name="failIfNoTests">failIfNoTests</a>:</b></p>
<div>
<p>If set to &quot;false&quot; the test execution will not fail in case there
are no tests found.</p></div>
<ul>
<li><b>Type</b>: <tt>boolean</tt></li>
<li><b>Required</b>: <tt>No</tt></li>
<li><b>User Property</b>: <tt>failIfNoTests</tt></li>
<li><b>Default</b>: <tt>true</tt></li>
</ul><hr />
<p><b><a name="forkedProcessTimeoutInSeconds">forkedProcessTimeoutInSeconds</a>:</b></p>
<div>
<p>Kill the forked test process after a certain number of seconds.
If set to 0, wait forever for the process, never timing out.</p></div>
<ul>
<li><b>Type</b>: <tt>int</tt></li>
<li><b>Required</b>: <tt>No</tt></li>
<li><b>User Property</b>: <tt>surefire.timeout</tt></li>
</ul><hr />
<p><b><a name="frameworkExtensions">frameworkExtensions</a>:</b></p>
<div>
<p>List of framework extension bundles to add. Note: The goal does
not automatically detect which bundles in the test runtime are
framework extensions, but they have to be explicitly specified
using this parameter. Ignored if <tt>testRuntime</tt> is
<tt>p2Installed</tt>.</p></div>
<ul>
<li><b>Type</b>: <tt>org.apache.maven.model.Dependency[]</tt></li>
<li><b>Required</b>: <tt>No</tt></li>
</ul><hr />
<p><b><a name="includes">includes</a>:</b></p>
<div>
<p>List of patterns (separated by commas) used to specify the tests
that should be included in testing. When not specified and whent
the <tt>test</tt> parameter is not specified, the default
includes will be <tt>**/Test*.java **/*Test.java
**/*TestCase.java</tt></p></div>
<ul>
<li><b>Type</b>: <tt>java.util.List</tt></li>
<li><b>Required</b>: <tt>No</tt></li>
</ul><hr />
<p><b><a name="osgiDataDirectory">osgiDataDirectory</a>:</b></p>
<div><a class="externalLink" href="http://help.eclipse.org/juno/topic/org.eclipse.platform.doc.isv/reference/misc/runtime-options.html#osgiinstancearea">OSGi
data directory</a> (<tt>osgi.instance.area</tt>, aka the
workspace) of the Equinox runtime used to execute tests.</div>
<ul>
<li><b>Type</b>: <tt>java.io.File</tt></li>
<li><b>Required</b>: <tt>No</tt></li>
<li><b>Default</b>: <tt>${project.build.directory}/work/data/</tt></li>
</ul><hr />
<p><b><a name="parallel">parallel</a>:</b></p>
<div>
<p>(JUnit 4.7 provider) Supports values &quot;classes&quot;/&quot;methods&quot;/&quot;both&quot;
to run in separate threads, as controlled by threadCount.</p></div>
<ul>
<li><b>Type</b>: <tt>org.eclipse.tycho.surefire.ParallelMode</tt></li>
<li><b>Since</b>: <tt>0.16.0</tt></li>
<li><b>Required</b>: <tt>No</tt></li>
<li><b>User Property</b>: <tt>parallel</tt></li>
</ul><hr />
<p><b><a name="perCoreThreadCount">perCoreThreadCount</a>:</b></p>
<div>
<p>(JUnit 4.7 provider) Indicates that threadCount is per cpu
core.</p></div>
<ul>
<li><b>Type</b>: <tt>boolean</tt></li>
<li><b>Since</b>: <tt>0.16.0</tt></li>
<li><b>Required</b>: <tt>No</tt></li>
<li><b>User Property</b>: <tt>perCoreThreadCount</tt></li>
<li><b>Default</b>: <tt>true</tt></li>
</ul><hr />
<p><b><a name="pluginArtifacts">pluginArtifacts</a>:</b></p>
<div>(no description)</div>
<ul>
<li><b>Type</b>: <tt>java.util.List</tt></li>
<li><b>Required</b>: <tt>No</tt></li>
<li><b>User Property</b>: <tt>plugin.artifacts</tt></li>
</ul><hr />
<p><b><a name="product">product</a>:</b></p>
<div>
<p>Eclipse product to be run, i.e. -product parameter passed to
test Eclipse runtime.</p></div>
<ul>
<li><b>Type</b>: <tt>java.lang.String</tt></li>
<li><b>Required</b>: <tt>No</tt></li>
</ul><hr />
<p><b><a name="profileName">profileName</a>:</b></p>
<div>p2 <a class="externalLink" href="http://help.eclipse.org/kepler/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Fguide%2Fp2_director.html">profile</a>
name of the installation under test. Only relevant if
<tt>testRuntime</tt> is <tt>p2Installed</tt>. If tests are
installed on top of an already existing installation in
<tt>work</tt>, this must match the name of the existing
profile.</div>
<ul>
<li><b>Type</b>: <tt>java.lang.String</tt></li>
<li><b>Since</b>: <tt>0.19.0</tt></li>
<li><b>Required</b>: <tt>No</tt></li>
<li><b>Default</b>: <tt>DefaultProfile</tt></li>
</ul><hr />
<p><b><a name="providerHint">providerHint</a>:</b></p>
<div>
<p>Normally tycho will automatically determine the test framework
provider based on the test project's classpath. Use this to force
using a test framework provider implementation with the given role
hint. Tycho comes with providers &quot;junit3&quot;,&quot;junit4&quot;,&quot;junit47&quot;. Note
that when specifying a providerHint, you have to make sure the
provider is actually available in the dependencies of
tycho-surefire-plugin.</p></div>
<ul>
<li><b>Type</b>: <tt>java.lang.String</tt></li>
<li><b>Since</b>: <tt>0.16.0</tt></li>
<li><b>Required</b>: <tt>No</tt></li>
</ul><hr />
<p><b><a name="providerProperties">providerProperties</a>:</b></p>
<div>
<p>Use this to specify surefire provider-specific properties.</p></div>
<ul>
<li><b>Type</b>: <tt>java.util.Properties</tt></li>
<li><b>Since</b>: <tt>0.16.0</tt></li>
<li><b>Required</b>: <tt>No</tt></li>
</ul><hr />
<p><b><a name="redirectTestOutputToFile">redirectTestOutputToFile</a>:</b></p>
<div>
<p>Set this to &quot;true&quot; to redirect the unit test standard output to
a file (found in reportsDirectory/testName-output.txt).</p></div>
<ul>
<li><b>Type</b>: <tt>boolean</tt></li>
<li><b>Required</b>: <tt>No</tt></li>
<li><b>User Property</b>: <tt>maven.test.redirectTestOutputToFile</tt></li>
<li><b>Default</b>: <tt>false</tt></li>
</ul><hr />
<p><b><a name="reportsDirectory">reportsDirectory</a>:</b></p>
<div>
<p>Base directory where all reports are written to.</p></div>
<ul>
<li><b>Type</b>: <tt>java.io.File</tt></li>
<li><b>Required</b>: <tt>No</tt></li>
<li><b>Default</b>: <tt>${project.build.directory}/surefire-reports</tt></li>
</ul><hr />
<p><b><a name="runOrder">runOrder</a>:</b></p>
<div>
<p>Defines the order the tests will be run in. Supported values are
&quot;alphabetical&quot;, &quot;reversealphabetical&quot;, &quot;random&quot;, &quot;hourly&quot;
(alphabetical on even hours, reverse alphabetical on odd hours) and
&quot;filesystem&quot;.</p></div>
<ul>
<li><b>Type</b>: <tt>java.lang.String</tt></li>
<li><b>Since</b>: <tt>0.19.0</tt></li>
<li><b>Required</b>: <tt>No</tt></li>
<li><b>Default</b>: <tt>filesystem</tt></li>
</ul><hr />
<p><b><a name="showEclipseLog">showEclipseLog</a>:</b></p>
<div>
<p>Enables -debug -consolelog for the test OSGi runtime</p></div>
<ul>
<li><b>Type</b>: <tt>boolean</tt></li>
<li><b>Required</b>: <tt>No</tt></li>
<li><b>User Property</b>: <tt>tycho.showEclipseLog</tt></li>
<li><b>Default</b>: <tt>false</tt></li>
</ul><hr />
<p><b><a name="skip">skip</a>:</b></p>
<div>
<p>Same as <tt>skipTests</tt></p></div>
<ul>
<li><b>Type</b>: <tt>boolean</tt></li>
<li><b>Required</b>: <tt>No</tt></li>
<li><b>User Property</b>: <tt>maven.test.skip</tt></li>
<li><b>Default</b>: <tt>false</tt></li>
</ul><hr />
<p><b><a name="skipExec">skipExec</a>:</b></p>
<div><b>Deprecated.</b> Use skipTests instead.</div>
<div>(no description)</div>
<ul>
<li><b>Type</b>: <tt>boolean</tt></li>
<li><b>Required</b>: <tt>No</tt></li>
<li><b>User Property</b>: <tt>maven.test.skipExec</tt></li>
<li><b>Default</b>: <tt>false</tt></li>
</ul><hr />
<p><b><a name="skipTests">skipTests</a>:</b></p>
<div>
<p>Set this to &quot;true&quot; to skip running tests, but still compile
them. Its use is NOT RECOMMENDED, but quite convenient on
occasion.</p></div>
<ul>
<li><b>Type</b>: <tt>boolean</tt></li>
<li><b>Required</b>: <tt>No</tt></li>
<li><b>User Property</b>: <tt>skipTests</tt></li>
<li><b>Default</b>: <tt>false</tt></li>
</ul><hr />
<p><b><a name="surefireProperties">surefireProperties</a>:</b></p>
<div>(no description)</div>
<ul>
<li><b>Type</b>: <tt>java.io.File</tt></li>
<li><b>Required</b>: <tt>No</tt></li>
<li><b>Default</b>: <tt>${project.build.directory}/surefire.properties</tt></li>
</ul><hr />
<p><b><a name="systemProperties">systemProperties</a>:</b></p>
<div>
<p>Additional system properties to set for the forked test JVM.</p></div>
<ul>
<li><b>Type</b>: <tt>java.util.Map</tt></li>
<li><b>Required</b>: <tt>No</tt></li>
</ul><hr />
<p><b><a name="test">test</a>:</b></p>
<div>
<p>Specify this parameter if you want to use the test pattern
matching notation, Ant pattern matching, to select tests to run.
The Ant pattern will be used to create an include pattern formatted
like <tt>**/${test}.java</tt> When used, the
<tt>includes</tt> and <tt>excludes</tt> patterns parameters
are ignored</p></div>
<ul>
<li><b>Type</b>: <tt>java.lang.String</tt></li>
<li><b>Required</b>: <tt>No</tt></li>
<li><b>User Property</b>: <tt>test</tt></li>
</ul><hr />
<p><b><a name="testClass">testClass</a>:</b></p>
<div>
<p>See testSuite</p></div>
<ul>
<li><b>Type</b>: <tt>java.lang.String</tt></li>
<li><b>Required</b>: <tt>No</tt></li>
<li><b>User Property</b>: <tt>testClass</tt></li>
</ul><hr />
<p><b><a name="testClassesDirectory">testClassesDirectory</a>:</b></p>
<div>
<p>The directory containing generated test classes of the project
being tested.</p></div>
<ul>
<li><b>Type</b>: <tt>java.io.File</tt></li>
<li><b>Required</b>: <tt>No</tt></li>
<li><b>User Property</b>: <tt>project.build.outputDirectory</tt></li>
</ul><hr />
<p><b><a name="testFailureIgnore">testFailureIgnore</a>:</b></p>
<div>
<p>Set this to true to ignore a failure during testing. Its use is
NOT RECOMMENDED, but quite convenient on occasion.</p></div>
<ul>
<li><b>Type</b>: <tt>boolean</tt></li>
<li><b>Required</b>: <tt>No</tt></li>
<li><b>User Property</b>: <tt>maven.test.failure.ignore</tt></li>
<li><b>Default</b>: <tt>false</tt></li>
</ul><hr />
<p><b><a name="testRuntime">testRuntime</a>:</b></p>
<div>
<p>How to create the OSGi test runtime. Allowed values are
<tt>default</tt> and <tt>p2Installed</tt>. Mode
<tt>p2Installed</tt> is <b>EXPERIMENTAL</b> - only works when
installing products under test (see below).</p>
<ul>
<li>In <tt>default</tt> mode, all necessary files to define the
test runtime like <tt>config.ini</tt> are generated by tycho. This
installation mode has the advantage that the test runtime is
minimal (defined by the transitive dependencies of the test bundle
plus and the test harness) and existing bundle jars are referenced
rather than copied for the installation</li>
<li>In <tt>p2Installed</tt> mode, use p2 director to install
test bundle, test harness bundles and respective dependencies. This
installation mode can be used for integration tests that require a
fully p2-provisioned installation. To install a product IU, add it
as extra requirement to the test bundle (see example below). Note
that this installation mode comes with a certain performance
overhead for executing the provisioning operations otherwise not
required.</li>
</ul>
Example configuration which will install product IU under test
&quot;example.product.id&quot; using p2:
<div>
<pre>
&lt;plugin&gt;
&lt;groupId&gt;org.eclipse.tycho&lt;/groupId&gt;
&lt;artifactId&gt;tycho-surefire-plugin&lt;/artifactId&gt;
&lt;version&gt;${tycho-version}&lt;/version&gt;
&lt;configuration&gt;
&lt;testRuntime&gt;p2Installed&lt;/testRuntime&gt;
&lt;/configuration&gt;
&lt;/plugin&gt;
&lt;plugin&gt;
&lt;groupId&gt;org.eclipse.tycho&lt;/groupId&gt;
&lt;artifactId&gt;target-platform-configuration&lt;/artifactId&gt;
&lt;version&gt;${tycho-version}&lt;/version&gt;
&lt;configuration&gt;
&lt;dependency-resolution&gt;
&lt;extraRequirements&gt;
&lt;!-- product IU under test --&gt;
&lt;requirement&gt;
&lt;type&gt;p2-installable-unit&lt;/type&gt;
&lt;id&gt;example.product.id&lt;/id&gt;
&lt;versionRange&gt;0.0.0&lt;/versionRange&gt;
&lt;/requirement&gt;
&lt;/extraRequirements&gt;
&lt;/dependency-resolution&gt;
&lt;/configuration&gt;
&lt;/plugin&gt;
</pre></div>
<br />
<br /></div>
<ul>
<li><b>Type</b>: <tt>java.lang.String</tt></li>
<li><b>Since</b>: <tt>0.19.0</tt></li>
<li><b>Required</b>: <tt>No</tt></li>
<li><b>Default</b>: <tt>default</tt></li>
</ul><hr />
<p><b><a name="testSuite">testSuite</a>:</b></p>
<div>
<p>Bundle-SymbolicName of the test suite, a special bundle that
knows how to locate and execute all relevant tests.</p>
<p>testSuite and testClass identify single test class to run. All
other tests will be ignored if both testSuite and testClass are
provided. It is an error if provide one of the two parameters but
not the other.</p></div>
<ul>
<li><b>Type</b>: <tt>java.lang.String</tt></li>
<li><b>Required</b>: <tt>No</tt></li>
<li><b>User Property</b>: <tt>testSuite</tt></li>
</ul><hr />
<p><b><a name="threadCount">threadCount</a>:</b></p>
<div>
<p>(JUnit 4.7 provider) The attribute thread-count allows you to
specify how many threads should be allocated for this execution.
Only makes sense to use in conjunction with the parallel
parameter.</p></div>
<ul>
<li><b>Type</b>: <tt>int</tt></li>
<li><b>Since</b>: <tt>0.16.0</tt></li>
<li><b>Required</b>: <tt>No</tt></li>
<li><b>User Property</b>: <tt>threadCount</tt></li>
</ul><hr />
<p><b><a name="useUIHarness">useUIHarness</a>:</b></p>
<div>
<p>Run tests using UI (true) or headless (false) test harness.</p></div>
<ul>
<li><b>Type</b>: <tt>boolean</tt></li>
<li><b>Required</b>: <tt>No</tt></li>
<li><b>Default</b>: <tt>false</tt></li>
</ul><hr />
<p><b><a name="useUIThread">useUIThread</a>:</b></p>
<div>
<p>Run tests in UI (true) or background (false) thread. Only
applies to UI test harness.</p></div>
<ul>
<li><b>Type</b>: <tt>boolean</tt></li>
<li><b>Required</b>: <tt>No</tt></li>
<li><b>Default</b>: <tt>true</tt></li>
</ul><hr />
<p><b><a name="useUnlimitedThreads">useUnlimitedThreads</a>:</b></p>
<div>
<p>(JUnit 4.7 provider) Indicates that the thread pool will be
unlimited. The parallel parameter and the actual number of
classes/methods will decide. Setting this to &quot;true&quot; effectively
disables perCoreThreadCount and threadCount.</p></div>
<ul>
<li><b>Type</b>: <tt>boolean</tt></li>
<li><b>Since</b>: <tt>0.16.0</tt></li>
<li><b>Required</b>: <tt>No</tt></li>
<li><b>User Property</b>: <tt>useUnlimitedThreads</tt></li>
<li><b>Default</b>: <tt>false</tt></li>
</ul><hr />
<p><b><a name="work">work</a>:</b></p>
<div>
<p>Root directory (<a class="externalLink" href="http://help.eclipse.org/indigo/topic/org.eclipse.platform.doc.isv/reference/misc/runtime-options.html#osgiinstallarea">osgi.install.area</a>)
of the Equinox runtime used to execute tests.</p></div>
<ul>
<li><b>Type</b>: <tt>java.io.File</tt></li>
<li><b>Required</b>: <tt>No</tt></li>
<li><b>Default</b>: <tt>${project.build.directory}/work</tt></li>
</ul>
</div>
</div>
</div>
</div>
</div>
<hr/>
<footer>
<div class="container-fluid">
<div class="row span12">Copyright &copy; 2008-2014
<a href="http://www.eclipse.org/">Eclipse Foundation</a>.
All Rights Reserved.
</div>
</div>
</footer>
</body>
</html>