1 <!-- 2 3 Here is a quick overview of the main parts of this DTD. For more information, 4 refer to the <a href="http://testng.org">main web site</a>. 5 6 A <b>suite</b> is made of <b>tests</b> and <b>parameters</b>. 7 8 A <b>test</b> is made of three parts: 9 10 <ul> 11 <li> <b>parameters</b>, which override the suite parameters 12 <li> <b>groups</b>, made of two parts 13 <li> <b>classes</b>, defining which classes are going to be part 14 of this test run 15 </ul> 16 17 In turn, <b>groups</b> are made of two parts: 18 <ul> 19 <li> Definitions, which allow you to group groups into 20 bigger groups 21 <li> Runs, which defines the groups that the methods 22 must belong to in order to be run during this test 23 </ul> 24 25 Cedric Beust & Alexandru Popescu 26 @title DTD for TestNG 27 @root suite 28 29 --> 30 31 32 <!-- A suite is the top-level element of a testng.xml file --> 33 <!ELEMENT suite (groups?,(listeners|packages|test|parameter|method-selectors|suite-files)*) > 34 35 <!-- Attributes: --> 36 <!-- 37 @attr name The name of this suite (as it will appear in the reports) 38 @attr junit Whether to run in JUnit mode. 39 @attr verbose How verbose the output on the console will be. 40 This setting has no impact on the HTML reports. 41 @attr parallel Whether TestNG should use different threads 42 to run your tests (might speed up the process) 43 @attr parent-module A module used to create the parent injector of all guice injectors used 44 in tests of the suite 45 @attr guice-stage The stage with which the parent injector is created 46 @attr configfailurepolicy Whether to continue attempting Before/After 47 Class/Methods after they've failed once or just skip remaining. 48 @attr thread-count An integer giving the size of the thread pool to use 49 if you set parallel. 50 @attr annotations If "javadoc", TestNG will look for 51 JavaDoc annotations in your sources, otherwise it will 52 use JDK5 annotations. 53 @attr time-out The time to wait in milliseconds before aborting the 54 method (if parallel="methods") or the test (parallel="tests") 55 @attr skipfailedinvocationcounts Whether to skip failed invocations. 56 @attr data-provider-thread-count An integer giving the size of the thread pool to use 57 for parallel data providers. 58 @attr object-factory A class that implements IObjectFactory that will be used to 59 instantiate the test objects. 60 @attr allow-return-values If true, tests that return a value will be run as well 61 --> 62 <!ATTLIST suite 63 name CDATA #REQUIRED 64 junit (true | false) "false" 65 verbose CDATA #IMPLIED 66 parallel (false | methods | tests | classes | instances) "false" 67 parent-module CDATA #IMPLIED 68 guice-stage (DEVELOPMENT | PRODUCTION | TOOL) "DEVELOPMENT" 69 configfailurepolicy (skip | continue) "skip" 70 thread-count CDATA "5" 71 annotations CDATA #IMPLIED 72 time-out CDATA #IMPLIED 73 skipfailedinvocationcounts (true | false) "false" 74 data-provider-thread-count CDATA "10" 75 object-factory CDATA #IMPLIED 76 group-by-instances (true | false) "false" 77 preserve-order (true | false) "true" 78 allow-return-values (true | false) "false" 79 > 80 81 <!-- A list of XML files that contain more suite descriptions --> 82 <!ELEMENT suite-files (suite-file)* > 83 84 <!ELEMENT suite-file ANY > 85 <!ATTLIST suite-file 86 path CDATA #REQUIRED 87 > 88 89 <!-- 90 Parameters can be defined at the <suite> or at the <test> level. 91 Parameters defined at the <test> level override parameters of the same name in <suite> 92 Parameters are used to link Java method parameters to their actual value, defined here. 93 --> 94 <!ELEMENT parameter ANY> 95 <!ATTLIST parameter 96 name CDATA #REQUIRED 97 value CDATA #REQUIRED > 98 99 <!-- 100 Method selectors define user classes used to select which methods to run. 101 They need to implement <tt>org.testng.IMethodSelector</tt> 102 --> 103 <!ELEMENT method-selectors (method-selector*) > 104 <!ELEMENT method-selector ((selector-class)*|script) > 105 <!ELEMENT selector-class ANY> 106 <!ATTLIST selector-class 107 name CDATA #REQUIRED 108 priority CDATA #IMPLIED 109 > 110 <!ELEMENT script ANY> 111 <!ATTLIST script 112 language CDATA #REQUIRED 113 > 114 115 <!-- 116 A test contains parameters and classes. Additionally, you can define additional groups ("groups of groups") 117 --> 118 119 <!ELEMENT test (method-selectors?,parameter*,groups?,packages?,classes?) > 120 121 <!-- 122 @attr name The name of this test (as it will appear in the reports) 123 @attr junit Whether to run in JUnit mode. 124 @attr verbose How verbose the output on the console will be. 125 This setting has no impact on the HTML reports. 126 Default value: suite level verbose. 127 @attr parallel Whether TestNG should use different threads 128 to run your tests (might speed up the process) 129 @attr thread-count An integer giving the size of the thread pool to be used if 130 parallel mode is used. Overrides the suite level value. 131 @attr annotations If "javadoc", TestNG will look for 132 JavaDoc annotations in your sources, otherwise it will 133 use JDK5 annotations. 134 @attr time-out the time to wait in milliseconds before aborting 135 the method (if parallel="methods") or the test (if parallel="tests") 136 @attr enabled flag to enable/disable current test. Default value: true 137 @attr skipfailedinvocationcounts Whether to skip failed invocations. 138 @attr preserve-order If true, the classes in this tag will be run in the same order as 139 found in the XML file. 140 @attr allow-return-values If true, tests that return a value will be run as well 141 --> 142 <!ATTLIST test 143 name CDATA #REQUIRED 144 junit (true | false) "false" 145 verbose CDATA #IMPLIED 146 parallel (false | methods | tests | classes | instances) #IMPLIED 147 thread-count CDATA #IMPLIED 148 annotations CDATA #IMPLIED 149 time-out CDATA #IMPLIED 150 enabled (true | false) #IMPLIED 151 skipfailedinvocationcounts (true | false) "false" 152 preserve-order (true | false) "true" 153 group-by-instances (true | false) "false" 154 allow-return-values (true | false) "false" 155 > 156 157 <!-- 158 Defines additional groups ("groups of groups") and also which groups to include in this test run 159 --> 160 <!ELEMENT groups (define*,run?,dependencies?) > 161 162 <!ELEMENT define (include*)> 163 <!ATTLIST define 164 name CDATA #REQUIRED> 165 166 <!-- Defines which groups to include in the current group of groups --> 167 <!ELEMENT include ANY> 168 <!ATTLIST include 169 name CDATA #REQUIRED 170 description CDATA #IMPLIED 171 invocation-numbers CDATA #IMPLIED> 172 173 <!-- Defines which groups to exclude from the current group of groups --> 174 <!ELEMENT exclude ANY> 175 <!ATTLIST exclude 176 name CDATA #REQUIRED> 177 178 <!-- The subtag of groups used to define which groups should be run --> 179 <!ELEMENT run (include?,exclude?)* > 180 181 <!ELEMENT dependencies (group*)> 182 183 <!ELEMENT group ANY> 184 <!ATTLIST group 185 name CDATA #REQUIRED 186 depends-on CDATA #REQUIRED> 187 188 <!-- The list of classes to include in this test --> 189 <!ELEMENT classes (class*,parameter*) > 190 <!ELEMENT class (methods|parameter)* > 191 <!ATTLIST class 192 name CDATA #REQUIRED > 193 194 <!-- The list of packages to include in this test --> 195 <!ELEMENT packages (package*) > 196 <!-- The package description. 197 If the package name ends with .* then subpackages are included too. 198 --> 199 <!ELEMENT package (include?,exclude?)*> 200 <!ATTLIST package 201 name CDATA #REQUIRED > 202 203 <!-- The list of methods to include/exclude from this test --> 204 <!ELEMENT methods (include?,exclude?,parameter?)* > 205 206 <!-- The list of listeners that will be passed to TestNG --> 207 <!ELEMENT listeners (listener*) > 208 209 <!ELEMENT listener ANY> 210 <!ATTLIST listener 211 class-name CDATA #REQUIRED > 212