1 <?xml version=
"1.0" encoding=
"UTF-8"?>
2 <xs:schema xmlns:
xs=
"http://www.w3.org/2001/XMLSchema">
4 <xs:documentation source=
"https://phpunit.de/documentation.html">
5 This Schema file defines the rules by which the XML configuration file of PHPUnit
9.5 may be structured.
7 <xs:appinfo source=
"https://phpunit.de/documentation.html"/>
9 <xs:element name=
"phpunit" type=
"phpUnitType">
11 <xs:documentation>Root Element
</xs:documentation>
14 <xs:complexType name=
"coverageType">
16 <xs:element name=
"include" minOccurs=
"0" maxOccurs=
"1">
18 <xs:group ref=
"pathGroup"/>
21 <xs:element name=
"exclude" minOccurs=
"0" maxOccurs=
"1">
23 <xs:group ref=
"pathGroup"/>
26 <xs:element name=
"report" minOccurs=
"0" maxOccurs=
"1">
28 <xs:group ref=
"coverageReportGroup"/>
32 <xs:attribute name=
"cacheDirectory" type=
"xs:anyURI"/>
33 <xs:attribute name=
"pathCoverage" type=
"xs:boolean" default=
"false"/>
34 <xs:attribute name=
"includeUncoveredFiles" type=
"xs:boolean" default=
"true"/>
35 <xs:attribute name=
"processUncoveredFiles" type=
"xs:boolean" default=
"false"/>
36 <xs:attribute name=
"ignoreDeprecatedCodeUnits" type=
"xs:boolean" default=
"false"/>
37 <xs:attribute name=
"disableCodeCoverageIgnore" type=
"xs:boolean" default=
"false"/>
39 <xs:complexType name=
"loggingType">
40 <xs:group ref=
"loggingGroup"/>
42 <xs:complexType name=
"groupsType">
45 <xs:element name=
"include" type=
"groupType"/>
46 <xs:element name=
"exclude" type=
"groupType" minOccurs=
"0"/>
49 <xs:element name=
"exclude" type=
"groupType"/>
53 <xs:complexType name=
"groupType">
55 <xs:element name=
"group" type=
"xs:string" maxOccurs=
"unbounded"/>
58 <xs:complexType name=
"extensionsType">
60 <xs:element name=
"extension" type=
"objectType" maxOccurs=
"unbounded"/>
63 <xs:complexType name=
"listenersType">
65 <xs:element name=
"listener" type=
"objectType" maxOccurs=
"unbounded"/>
68 <xs:complexType name=
"objectType">
70 <xs:element name=
"arguments" minOccurs=
"0">
72 <xs:group ref=
"argumentsGroup"/>
76 <xs:attribute name=
"class" type=
"xs:string" use=
"required"/>
77 <xs:attribute name=
"file" type=
"xs:anyURI"/>
79 <xs:complexType name=
"arrayType">
81 <xs:element name=
"element" type=
"argumentType" minOccurs=
"0" maxOccurs=
"unbounded"/>
84 <xs:complexType name=
"argumentType">
85 <xs:group ref=
"argumentChoice"/>
86 <xs:attribute name=
"key" use=
"required"/>
88 <xs:group name=
"argumentsGroup">
90 <xs:choice minOccurs=
"0" maxOccurs=
"unbounded">
91 <xs:element name=
"array" type=
"arrayType" />
92 <xs:element name=
"integer" type=
"xs:integer" />
93 <xs:element name=
"string" type=
"xs:string" />
94 <xs:element name=
"double" type=
"xs:double" />
95 <xs:element name=
"null" />
96 <xs:element name=
"object" type=
"objectType" />
97 <xs:element name=
"file" type=
"xs:anyURI" />
98 <xs:element name=
"directory" type=
"xs:anyURI" />
99 <xs:element name=
"boolean" type=
"xs:boolean" />
103 <xs:group name=
"argumentChoice">
105 <xs:element name=
"array" type=
"arrayType" minOccurs=
"0" maxOccurs=
"unbounded"/>
106 <xs:element name=
"integer" type=
"xs:integer" minOccurs=
"0" maxOccurs=
"unbounded"/>
107 <xs:element name=
"string" type=
"xs:string" minOccurs=
"0" maxOccurs=
"unbounded"/>
108 <xs:element name=
"double" type=
"xs:double" minOccurs=
"0" maxOccurs=
"unbounded"/>
109 <xs:element name=
"null" minOccurs=
"0" maxOccurs=
"unbounded"/>
110 <xs:element name=
"object" type=
"objectType" minOccurs=
"0" maxOccurs=
"unbounded"/>
111 <xs:element name=
"file" type=
"xs:anyURI" minOccurs=
"0" maxOccurs=
"unbounded"/>
112 <xs:element name=
"directory" type=
"xs:anyURI" minOccurs=
"0" maxOccurs=
"unbounded"/>
113 <xs:element name=
"boolean" type=
"xs:boolean" minOccurs=
"0" maxOccurs=
"unbounded"/>
116 <xs:simpleType name=
"columnsType">
119 <xs:restriction base=
"xs:integer"/>
122 <xs:restriction base=
"xs:string">
123 <xs:enumeration value=
"max"/>
128 <xs:group name=
"pathGroup">
130 <xs:choice minOccurs=
"0" maxOccurs=
"unbounded">
131 <xs:element name=
"directory" type=
"directoryFilterType"/>
132 <xs:element name=
"file" type=
"fileFilterType"/>
136 <xs:complexType name=
"directoryFilterType">
138 <xs:extension base=
"xs:anyURI">
139 <xs:attribute type=
"xs:string" name=
"prefix" default=
""/>
140 <xs:attribute type=
"xs:string" name=
"suffix" default=
"Test.php"/>
141 <xs:attributeGroup ref=
"phpVersionGroup"/>
145 <xs:simpleType name=
"executionOrderType">
146 <xs:restriction base=
"xs:string">
147 <xs:enumeration value=
"default"/>
148 <xs:enumeration value=
"defects"/>
149 <xs:enumeration value=
"depends"/>
150 <xs:enumeration value=
"depends,defects"/>
151 <xs:enumeration value=
"depends,duration"/>
152 <xs:enumeration value=
"depends,random"/>
153 <xs:enumeration value=
"depends,reverse"/>
154 <xs:enumeration value=
"depends,size"/>
155 <xs:enumeration value=
"duration"/>
156 <xs:enumeration value=
"no-depends"/>
157 <xs:enumeration value=
"no-depends,defects"/>
158 <xs:enumeration value=
"no-depends,duration"/>
159 <xs:enumeration value=
"no-depends,random"/>
160 <xs:enumeration value=
"no-depends,reverse"/>
161 <xs:enumeration value=
"no-depends,size"/>
162 <xs:enumeration value=
"random"/>
163 <xs:enumeration value=
"reverse"/>
164 <xs:enumeration value=
"size"/>
167 <xs:complexType name=
"fileFilterType">
169 <xs:extension base=
"xs:anyURI">
170 <xs:attributeGroup ref=
"phpVersionGroup"/>
174 <xs:attributeGroup name=
"phpVersionGroup">
175 <xs:attribute name=
"phpVersion" type=
"xs:string" default=
"5.3.0"/>
176 <xs:attribute name=
"phpVersionOperator" type=
"xs:string" default=
">="/>
178 <xs:complexType name=
"phpType">
180 <xs:choice maxOccurs=
"unbounded">
181 <xs:element name=
"includePath" type=
"xs:anyURI" minOccurs=
"0" maxOccurs=
"unbounded"/>
182 <xs:element name=
"ini" type=
"namedValueType" minOccurs=
"0" maxOccurs=
"unbounded"/>
183 <xs:element name=
"const" type=
"namedValueType" minOccurs=
"0" maxOccurs=
"unbounded"/>
184 <xs:element name=
"var" type=
"namedValueType" minOccurs=
"0" maxOccurs=
"unbounded"/>
185 <xs:element name=
"env" type=
"namedValueType" minOccurs=
"0" maxOccurs=
"unbounded"/>
186 <xs:element name=
"post" type=
"namedValueType" minOccurs=
"0" maxOccurs=
"unbounded"/>
187 <xs:element name=
"get" type=
"namedValueType" minOccurs=
"0" maxOccurs=
"unbounded"/>
188 <xs:element name=
"cookie" type=
"namedValueType" minOccurs=
"0" maxOccurs=
"unbounded"/>
189 <xs:element name=
"server" type=
"namedValueType" minOccurs=
"0" maxOccurs=
"unbounded"/>
190 <xs:element name=
"files" type=
"namedValueType" minOccurs=
"0" maxOccurs=
"unbounded"/>
191 <xs:element name=
"request" type=
"namedValueType" minOccurs=
"0" maxOccurs=
"unbounded"/>
195 <xs:complexType name=
"namedValueType">
196 <xs:attribute name=
"name" use=
"required" type=
"xs:string"/>
197 <xs:attribute name=
"value" use=
"required" type=
"xs:anySimpleType"/>
198 <xs:attribute name=
"verbatim" use=
"optional" type=
"xs:boolean"/>
199 <xs:attribute name=
"force" use=
"optional" type=
"xs:boolean"/>
201 <xs:complexType name=
"phpUnitType">
203 <xs:documentation>The main type specifying the document structure
</xs:documentation>
205 <xs:group ref=
"configGroup"/>
206 <xs:attributeGroup ref=
"configAttributeGroup"/>
208 <xs:attributeGroup name=
"configAttributeGroup">
209 <xs:attribute name=
"backupGlobals" type=
"xs:boolean" default=
"false"/>
210 <xs:attribute name=
"backupStaticAttributes" type=
"xs:boolean" default=
"false"/>
211 <xs:attribute name=
"bootstrap" type=
"xs:anyURI"/>
212 <xs:attribute name=
"cacheResult" type=
"xs:boolean" default=
"true"/>
213 <xs:attribute name=
"cacheResultFile" type=
"xs:anyURI"/>
214 <xs:attribute name=
"colors" type=
"xs:boolean" default=
"false"/>
215 <xs:attribute name=
"columns" type=
"columnsType" default=
"80"/>
216 <xs:attribute name=
"convertDeprecationsToExceptions" type=
"xs:boolean" default=
"true"/>
217 <xs:attribute name=
"convertErrorsToExceptions" type=
"xs:boolean" default=
"true"/>
218 <xs:attribute name=
"convertNoticesToExceptions" type=
"xs:boolean" default=
"true"/>
219 <xs:attribute name=
"convertWarningsToExceptions" type=
"xs:boolean" default=
"true"/>
220 <xs:attribute name=
"forceCoversAnnotation" type=
"xs:boolean" default=
"false"/>
221 <xs:attribute name=
"printerClass" type=
"xs:string" default=
"PHPUnit\TextUI\DefaultResultPrinter"/>
222 <xs:attribute name=
"printerFile" type=
"xs:anyURI"/>
223 <xs:attribute name=
"processIsolation" type=
"xs:boolean" default=
"false"/>
224 <xs:attribute name=
"stopOnDefect" type=
"xs:boolean" default=
"false"/>
225 <xs:attribute name=
"stopOnError" type=
"xs:boolean" default=
"false"/>
226 <xs:attribute name=
"stopOnFailure" type=
"xs:boolean" default=
"false"/>
227 <xs:attribute name=
"stopOnWarning" type=
"xs:boolean" default=
"false"/>
228 <xs:attribute name=
"stopOnIncomplete" type=
"xs:boolean" default=
"false"/>
229 <xs:attribute name=
"stopOnRisky" type=
"xs:boolean" default=
"false"/>
230 <xs:attribute name=
"stopOnSkipped" type=
"xs:boolean" default=
"false"/>
231 <xs:attribute name=
"failOnEmptyTestSuite" type=
"xs:boolean" default=
"false"/>
232 <xs:attribute name=
"failOnIncomplete" type=
"xs:boolean" default=
"false"/>
233 <xs:attribute name=
"failOnRisky" type=
"xs:boolean" default=
"false"/>
234 <xs:attribute name=
"failOnSkipped" type=
"xs:boolean" default=
"false"/>
235 <xs:attribute name=
"failOnWarning" type=
"xs:boolean" default=
"false"/>
236 <xs:attribute name=
"beStrictAboutChangesToGlobalState" type=
"xs:boolean" default=
"false"/>
237 <xs:attribute name=
"beStrictAboutOutputDuringTests" type=
"xs:boolean" default=
"false"/>
238 <xs:attribute name=
"beStrictAboutResourceUsageDuringSmallTests" type=
"xs:boolean" default=
"false"/>
239 <xs:attribute name=
"beStrictAboutTestsThatDoNotTestAnything" type=
"xs:boolean" default=
"true"/>
240 <xs:attribute name=
"beStrictAboutTodoAnnotatedTests" type=
"xs:boolean" default=
"false"/>
241 <xs:attribute name=
"beStrictAboutCoversAnnotation" type=
"xs:boolean" default=
"false"/>
242 <xs:attribute name=
"defaultTimeLimit" type=
"xs:integer" default=
"0"/>
243 <xs:attribute name=
"enforceTimeLimit" type=
"xs:boolean" default=
"false"/>
244 <xs:attribute name=
"timeoutForSmallTests" type=
"xs:integer" default=
"1"/>
245 <xs:attribute name=
"timeoutForMediumTests" type=
"xs:integer" default=
"10"/>
246 <xs:attribute name=
"timeoutForLargeTests" type=
"xs:integer" default=
"60"/>
247 <xs:attribute name=
"testSuiteLoaderClass" type=
"xs:string" default=
"PHPUnit\Runner\StandardTestSuiteLoader"/>
248 <xs:attribute name=
"testSuiteLoaderFile" type=
"xs:anyURI"/>
249 <xs:attribute name=
"defaultTestSuite" type=
"xs:string" default=
""/>
250 <xs:attribute name=
"verbose" type=
"xs:boolean" default=
"false"/>
251 <xs:attribute name=
"testdox" type=
"xs:boolean" default=
"false"/>
252 <xs:attribute name=
"stderr" type=
"xs:boolean" default=
"false"/>
253 <xs:attribute name=
"reverseDefectList" type=
"xs:boolean" default=
"false"/>
254 <xs:attribute name=
"registerMockObjectsFromTestArgumentsRecursively" type=
"xs:boolean" default=
"false"/>
255 <xs:attribute name=
"extensionsDirectory" type=
"xs:string"/>
256 <xs:attribute name=
"executionOrder" type=
"executionOrderType" default=
"default"/>
257 <xs:attribute name=
"resolveDependencies" type=
"xs:boolean" default=
"true"/>
258 <xs:attribute name=
"noInteraction" type=
"xs:boolean" default=
"false"/>
260 <xs:group name=
"configGroup">
262 <xs:element ref=
"testSuiteFacet" minOccurs=
"0"/>
263 <xs:element name=
"groups" type=
"groupsType" minOccurs=
"0"/>
264 <xs:element name=
"testdoxGroups" type=
"groupsType" minOccurs=
"0"/>
265 <xs:element name=
"coverage" type=
"coverageType" minOccurs=
"0"/>
266 <xs:element name=
"logging" type=
"loggingType" minOccurs=
"0"/>
267 <xs:element name=
"extensions" type=
"extensionsType" minOccurs=
"0"/>
268 <xs:element name=
"listeners" type=
"listenersType" minOccurs=
"0"/>
269 <xs:element name=
"php" type=
"phpType" minOccurs=
"0"/>
272 <xs:element name=
"testSuiteFacet" abstract=
"true"/>
273 <xs:element name=
"testsuite" type=
"testSuiteType" substitutionGroup=
"testSuiteFacet"/>
274 <xs:element name=
"testsuites" type=
"testSuitesType" substitutionGroup=
"testSuiteFacet"/>
275 <xs:complexType name=
"testSuitesType">
277 <xs:element name=
"testsuite" type=
"testSuiteType" maxOccurs=
"unbounded"/>
280 <xs:complexType name=
"testSuiteType">
282 <xs:group ref=
"pathGroup"/>
283 <xs:element name=
"exclude" type=
"xs:anyURI" minOccurs=
"0" maxOccurs=
"unbounded"/>
285 <xs:attribute name=
"name" type=
"xs:string" use=
"required"/>
287 <xs:group name=
"coverageReportGroup">
289 <xs:element name=
"clover" type=
"logToFileType" minOccurs=
"0"/>
290 <xs:element name=
"cobertura" type=
"logToFileType" minOccurs=
"0"/>
291 <xs:element name=
"crap4j" type=
"coverageReportCrap4JType" minOccurs=
"0" />
292 <xs:element name=
"html" type=
"coverageReportHtmlType" minOccurs=
"0" />
293 <xs:element name=
"php" type=
"logToFileType" minOccurs=
"0" />
294 <xs:element name=
"text" type=
"coverageReportTextType" minOccurs=
"0" />
295 <xs:element name=
"xml" type=
"logToDirectoryType" minOccurs=
"0" />
298 <xs:group name=
"loggingGroup">
300 <xs:element name=
"junit" type=
"logToFileType" minOccurs=
"0" />
301 <xs:element name=
"teamcity" type=
"logToFileType" minOccurs=
"0" />
302 <xs:element name=
"testdoxHtml" type=
"logToFileType" minOccurs=
"0" />
303 <xs:element name=
"testdoxText" type=
"logToFileType" minOccurs=
"0" />
304 <xs:element name=
"testdoxXml" type=
"logToFileType" minOccurs=
"0" />
305 <xs:element name=
"text" type=
"logToFileType" minOccurs=
"0"/>
308 <xs:complexType name=
"logToFileType">
309 <xs:attribute name=
"outputFile" type=
"xs:anyURI" use=
"required"/>
311 <xs:complexType name=
"logToDirectoryType">
312 <xs:attribute name=
"outputDirectory" type=
"xs:anyURI" use=
"required"/>
314 <xs:complexType name=
"coverageReportCrap4JType">
315 <xs:attribute name=
"outputFile" type=
"xs:anyURI" use=
"required"/>
316 <xs:attribute name=
"threshold" type=
"xs:integer"/>
318 <xs:complexType name=
"coverageReportHtmlType">
319 <xs:attribute name=
"outputDirectory" type=
"xs:anyURI" use=
"required"/>
320 <xs:attribute name=
"lowUpperBound" type=
"xs:integer" default=
"50"/>
321 <xs:attribute name=
"highLowerBound" type=
"xs:integer" default=
"90"/>
323 <xs:complexType name=
"coverageReportTextType">
324 <xs:attribute name=
"outputFile" type=
"xs:anyURI" use=
"required"/>
325 <xs:attribute name=
"showUncoveredFiles" type=
"xs:boolean" default=
"false"/>
326 <xs:attribute name=
"showOnlySummary" type=
"xs:boolean" default=
"false"/>