<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>DTD for TestNG 1.0</title>
<link rel="stylesheet" href="http://beust.com/beust.css" type="text/css"/>
</head>
<body>
<pre class="code"><span class="xml-comment"><!--
Here is a quick overview of the main parts of this DTD. For more information,
refer to the <a <span class="attribute">href="http://testng.org"</span> >main web site<span class="tag"></a>.
</span>
A <span class="tag"><b>suite</b></span> is made of <span class="tag"><b>tests</b></span> and <span class="tag"><b>parameters</b>.
</span>
A <span class="tag"><b>test</b></span> is made of three parts:
<span class="tag"><ul>
<li></span> <span class="tag"><b>parameters</b>,</span> which override the suite parameters
<span class="tag"><li></span> <span class="tag"><b>groups</b>,</span> made of two parts
<span class="tag"><li></span> <span class="tag"><b>classes</b>,</span> defining which classes are going to be part
of this test run
<span class="tag"></ul>
</span>
In turn, <span class="tag"><b>groups</b></span> are made of two parts:
<span class="tag"><ul>
<li></span> Definitions, which allow you to group groups into
bigger groups
<span class="tag"><li></span> Runs, which defines the groups that the methods
must belong to in order to be run during this test
<span class="tag"></ul>
</span>
Cedric Beust & Alexandru Popescu
@title DTD for TestNG
@root suite
--></span>
<span class="xml-comment"><!-- A suite is the top-level element of a testng.xml file --></span>
<!ELEMENT suite (listeners|packages|test|parameter|method-selectors|suite-files)* >
<span class="xml-comment"><!-- Attributes: --></span>
<span class="xml-comment"><!--
@attr name The name of this suite (as it will appear in the reports)
@attr junit Whether to run in JUnit mode.
@attr verbose How verbose the output on the console will be.
This setting has no impact on the HTML reports.
@attr parallel Whether TestNG should use different threads
to run your tests (might speed up the process)
@attr configfailurepolicy Whether to continue attempting Before/After
Class/Methods after they've failed once or just skip remaining.
@attr thread-count An integer giving the size of the thread pool to use
if you set parallel.
@attr annotations If "javadoc", TestNG will look for
JavaDoc annotations in your sources, otherwise it will
use JDK5 annotations.
@attr time-out The time to wait in milliseconds before aborting the
method (if <span class="attribute">parallel="methods"</span> ) or the test (parallel="tests")
@attr skipfailedinvocationCounts Whether to skip failed invocations.
@attr data-provider-thread-count An integer giving the size of the thread pool to use
for parallel data providers.
@attr object-factory A class that implements IObjectFactory that will be used to
instantiate the test objects.
--></span>
<!ATTLIST suite
name CDATA #REQUIRED
junit (true | false) "false"
verbose CDATA #IMPLIED
parallel (false | methods | tests | classes) "false"
configfailurepolicy (skip | continue) "skip"
thread-count CDATA "5"
annotations CDATA #IMPLIED
time-out CDATA #IMPLIED
skipfailedinvocationCounts (true | false) "false"
data-provider-thread-count CDATA "10"
object-factory CDATA #IMPLIED
>
<span class="xml-comment"><!-- A list of XML files that contain more suite descriptions --></span>
<!ELEMENT suite-files (suite-file)* >
<!ELEMENT suite-file ANY >
<!ATTLIST suite-file
path CDATA #REQUIRED
>
<span class="xml-comment"><!--
Parameters can be defined at the <span class="tag"><suite></span> or at the <span class="tag"><test></span> level.
Parameters defined at the <span class="tag"><test></span> level override parameters of the same name in <span class="tag"><suite>
Parameters</span> are used to link Java method parameters to their actual value, defined here.
--></span>
<!ELEMENT parameter ANY>
<!ATTLIST parameter
name CDATA #REQUIRED
value CDATA #REQUIRED >
<span class="xml-comment"><!--
Method selectors define user classes used to select which methods to run.
They need to implement <span class="tag"><tt>org.testng.IMethodSelector</tt></span>
--></span>
<!ELEMENT method-selectors (method-selector*) >
<!ELEMENT method-selector ((selector-class)*|script) >
<!ELEMENT selector-class ANY>
<!ATTLIST selector-class
name CDATA #REQUIRED
priority CDATA #IMPLIED
>
<!ELEMENT script ANY>
<!ATTLIST script
language CDATA #REQUIRED
>
<span class="xml-comment"><!--
A test contains parameters and classes. Additionally, you can define additional groups ("groups of groups")
--></span>
<!ELEMENT test (method-selectors?,parameter*,groups?,packages?,classes?) >
<span class="xml-comment"><!--
@attr name The name of this test (as it will appear in the reports)
@attr junit Whether to run in JUnit mode.
@attr verbose How verbose the output on the console will be.
This setting has no impact on the HTML reports.
Default value: suite level verbose.
@attr parallel Whether TestNG should use different threads
to run your tests (might speed up the process)
@attr thread-count An integer giving the size of the thread pool to be used if
parallel mode is used. Overrides the suite level value.
@attr annotations If "javadoc", TestNG will look for
JavaDoc annotations in your sources, otherwise it will
use JDK5 annotations.
@attr time-out the time to wait in milliseconds before aborting
the method (if <span class="attribute">parallel="methods"</span> ) or the test (if <span class="attribute">parallel="tests"</span> )
@attr enabled flag to enable/disable current test. Default value: true
@attr skipfailedinvocationCounts Whether to skip failed invocations.
--></span>
<!ATTLIST test
name CDATA #REQUIRED
junit (true | false) "false"
verbose CDATA #IMPLIED
parallel CDATA #IMPLIED
thread-count CDATA #IMPLIED
annotations CDATA #IMPLIED
time-out CDATA #IMPLIED
enabled CDATA #IMPLIED
skipfailedinvocationCounts (true | false) "false"
>
<span class="xml-comment"><!--
Defines additional groups ("groups of groups") and also which groups to include in this test run
--></span>
<!ELEMENT groups (define*,run?) >
<!ELEMENT define (include*)>
<!ATTLIST define
name CDATA #REQUIRED>
<span class="xml-comment"><!-- Defines which groups to include in the current group of groups --></span>
<!ELEMENT include ANY>
<!ATTLIST include
name CDATA #REQUIRED>
<span class="xml-comment"><!-- Defines which groups to exclude from the current group of groups --></span>
<!ELEMENT exclude ANY>
<!ATTLIST exclude
name CDATA #REQUIRED>
<span class="xml-comment"><!-- The subtag of groups used to define which groups should be run --></span>
<!ELEMENT run (include?,exclude?)* >
<span class="xml-comment"><!-- The list of classes to include in this test --></span>
<!ELEMENT classes (class*) >
<!ELEMENT class (methods*) >
<!ATTLIST class
name CDATA #REQUIRED >
<span class="xml-comment"><!-- The list of packages to include in this test --></span>
<!ELEMENT packages (package*) >
<span class="xml-comment"><!-- The package description.
If the package name ends with .* then subpackages are included too.
--></span>
<!ELEMENT package (include?,exclude?)*>
<!ATTLIST package
name CDATA #REQUIRED >
<span class="xml-comment"><!-- The list of methods to include/exclude from this test --></span>
<!ELEMENT methods (include?,exclude?)* >
<span class="xml-comment"><!-- The list of listeners that will be passed to TestNG --></span>
<!ELEMENT listeners (listener*) >
<!ELEMENT listener ANY>
<!ATTLIST listener
class-name CDATA #REQUIRED >
</pre>