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/manual/5.4/en/appendixes.configuration.html">
5 This Schema file defines the rules by which the XML configuration file of PHPUnit
5.4 may be structured.
7 <xs:appinfo source=
"http://www.phpunit.de/manual/current/en/appendixes.configuration.html"/>
9 <xs:element name=
"phpunit" type=
"phpUnitType">
11 <xs:documentation>Root Element
</xs:documentation>
14 <xs:complexType name=
"filtersType">
17 <xs:element name=
"whitelist" type=
"whiteListType" minOccurs=
"0"/>
20 <xs:element name=
"whitelist" type=
"whiteListType"/>
24 <xs:complexType name=
"filterType">
26 <xs:group ref=
"pathGroup"/>
27 <xs:element name=
"exclude" maxOccurs=
"unbounded" minOccurs=
"0">
29 <xs:group ref=
"pathGroup"/>
34 <xs:complexType name=
"whiteListType">
36 <xs:extension base=
"filterType">
37 <xs:attribute name=
"addUncoveredFilesFromWhitelist" default=
"false" type=
"xs:boolean"/>
38 <xs:attribute name=
"processUncoveredFilesFromWhitelist" default=
"true" type=
"xs:boolean"/>
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=
"listenersType">
60 <xs:element name=
"listener" type=
"objectType" maxOccurs=
"unbounded"/>
63 <xs:complexType name=
"objectType">
65 <xs:element name=
"arguments" minOccurs=
"0">
67 <xs:group ref=
"argumentsGroup"/>
71 <xs:attribute name=
"class" type=
"xs:string" use=
"required"/>
72 <xs:attribute name=
"file" type=
"xs:anyURI"/>
74 <xs:complexType name=
"arrayType">
76 <xs:element name=
"element" type=
"argumentType" minOccurs=
"0" maxOccurs=
"unbounded"/>
79 <xs:complexType name=
"argumentType">
80 <xs:group ref=
"argumentChoice"/>
81 <xs:attribute name=
"key" use=
"required"/>
83 <xs:group name=
"argumentsGroup">
85 <xs:element name=
"array" type=
"arrayType" minOccurs=
"0" maxOccurs=
"unbounded"/>
86 <xs:element name=
"integer" type=
"xs:integer" minOccurs=
"0" maxOccurs=
"unbounded"/>
87 <xs:element name=
"string" type=
"xs:string" minOccurs=
"0" maxOccurs=
"unbounded"/>
88 <xs:element name=
"double" type=
"xs:double" minOccurs=
"0" maxOccurs=
"unbounded"/>
89 <xs:element name=
"null" minOccurs=
"0" maxOccurs=
"unbounded"/>
90 <xs:element name=
"object" type=
"objectType" minOccurs=
"0" maxOccurs=
"unbounded"/>
91 <xs:element name=
"file" type=
"xs:anyURI" minOccurs=
"0" maxOccurs=
"unbounded"/>
92 <xs:element name=
"directory" type=
"xs:anyURI" minOccurs=
"0" maxOccurs=
"unbounded"/>
95 <xs:group name=
"argumentChoice">
97 <xs:element name=
"array" type=
"arrayType" minOccurs=
"0" maxOccurs=
"unbounded"/>
98 <xs:element name=
"integer" type=
"xs:integer" minOccurs=
"0" maxOccurs=
"unbounded"/>
99 <xs:element name=
"string" type=
"xs:string" minOccurs=
"0" maxOccurs=
"unbounded"/>
100 <xs:element name=
"double" type=
"xs:double" minOccurs=
"0" maxOccurs=
"unbounded"/>
101 <xs:element name=
"null" minOccurs=
"0" maxOccurs=
"unbounded"/>
102 <xs:element name=
"object" type=
"objectType" minOccurs=
"0" maxOccurs=
"unbounded"/>
103 <xs:element name=
"file" type=
"xs:anyURI" minOccurs=
"0" maxOccurs=
"unbounded"/>
104 <xs:element name=
"directory" type=
"xs:anyURI" minOccurs=
"0" maxOccurs=
"unbounded"/>
107 <xs:complexType name=
"loggersType">
109 <xs:element name=
"log" type=
"loggerType" maxOccurs=
"unbounded"/>
112 <xs:complexType name=
"loggerType">
113 <xs:attribute name=
"type">
115 <xs:restriction base=
"xs:string">
116 <xs:enumeration value=
"coverage-html"/>
117 <xs:enumeration value=
"coverage-text"/>
118 <xs:enumeration value=
"coverage-clover"/>
119 <xs:enumeration value=
"coverage-crap4j"/>
120 <xs:enumeration value=
"coverage-xml"/>
121 <xs:enumeration value=
"json"/>
122 <xs:enumeration value=
"plain"/>
123 <xs:enumeration value=
"tap"/>
124 <xs:enumeration value=
"teamcity"/>
125 <xs:enumeration value=
"junit"/>
126 <xs:enumeration value=
"testdox-html"/>
127 <xs:enumeration value=
"testdox-text"/>
128 <xs:enumeration value=
"testdox-xml"/>
132 <xs:attribute name=
"target" type=
"xs:anyURI"/>
133 <xs:attribute name=
"lowUpperBound" type=
"xs:nonNegativeInteger" default=
"35"/>
134 <xs:attribute name=
"highLowerBound" type=
"xs:nonNegativeInteger" default=
"70"/>
135 <xs:attribute name=
"showUncoveredFiles" type=
"xs:boolean" default=
"false"/>
136 <xs:attribute name=
"threshold" type=
"xs:nonNegativeInteger" default=
"30"/>
138 <xs:group name=
"pathGroup">
140 <xs:element name=
"directory" type=
"directoryFilterType" minOccurs=
"0" maxOccurs=
"unbounded"/>
141 <xs:element name=
"file" type=
"fileFilterType" minOccurs=
"0" maxOccurs=
"unbounded"/>
144 <xs:complexType name=
"directoryFilterType">
146 <xs:extension base=
"xs:anyURI">
147 <xs:attribute type=
"xs:string" name=
"suffix" default=
"Test.php"/>
148 <xs:attributeGroup ref=
"phpVersionGroup"/>
152 <xs:complexType name=
"fileFilterType">
154 <xs:extension base=
"xs:anyURI">
155 <xs:attributeGroup ref=
"phpVersionGroup"/>
159 <xs:attributeGroup name=
"phpVersionGroup">
160 <xs:attribute name=
"phpVersion" type=
"xs:string" default=
"5.3.0"/>
161 <xs:attribute name=
"phpVersionOperator" type=
"xs:string" default=
">="/>
163 <xs:complexType name=
"phpType">
165 <xs:choice maxOccurs=
"unbounded">
166 <xs:element name=
"includePath" type=
"xs:anyURI" minOccurs=
"0" maxOccurs=
"unbounded"/>
167 <xs:element name=
"ini" type=
"namedValueType" minOccurs=
"0" maxOccurs=
"unbounded"/>
168 <xs:element name=
"const" type=
"namedValueType" minOccurs=
"0" maxOccurs=
"unbounded"/>
169 <xs:element name=
"var" type=
"namedValueType" minOccurs=
"0" maxOccurs=
"unbounded"/>
170 <xs:element name=
"env" type=
"namedValueType" minOccurs=
"0" maxOccurs=
"unbounded"/>
171 <xs:element name=
"post" type=
"namedValueType" minOccurs=
"0" maxOccurs=
"unbounded"/>
172 <xs:element name=
"get" type=
"namedValueType" minOccurs=
"0" maxOccurs=
"unbounded"/>
173 <xs:element name=
"cookie" type=
"namedValueType" minOccurs=
"0" maxOccurs=
"unbounded"/>
174 <xs:element name=
"server" type=
"namedValueType" minOccurs=
"0" maxOccurs=
"unbounded"/>
175 <xs:element name=
"files" type=
"namedValueType" minOccurs=
"0" maxOccurs=
"unbounded"/>
176 <xs:element name=
"request" type=
"namedValueType" minOccurs=
"0" maxOccurs=
"unbounded"/>
180 <xs:complexType name=
"namedValueType">
181 <xs:attribute name=
"name" use=
"required" type=
"xs:string"/>
182 <xs:attribute name=
"value" use=
"required" type=
"xs:anySimpleType"/>
184 <xs:complexType name=
"phpUnitType">
186 <xs:documentation>The main type specifying the document structure
</xs:documentation>
188 <xs:group ref=
"configGroup"/>
189 <xs:attributeGroup ref=
"configAttributeGroup"/>
191 <xs:attributeGroup name=
"configAttributeGroup">
192 <xs:attribute name=
"backupGlobals" type=
"xs:boolean" default=
"true"/>
193 <xs:attribute name=
"backupStaticAttributes" type=
"xs:boolean" default=
"false"/>
194 <xs:attribute name=
"bootstrap" type=
"xs:anyURI"/>
195 <xs:attribute name=
"cacheTokens" type=
"xs:boolean"/>
196 <xs:attribute name=
"colors" type=
"xs:boolean" default=
"false"/>
197 <xs:attribute name=
"columns" type=
"xs:integer" default=
"80"/>
198 <xs:attribute name=
"convertErrorsToExceptions" type=
"xs:boolean" default=
"true"/>
199 <xs:attribute name=
"convertNoticesToExceptions" type=
"xs:boolean" default=
"true"/>
200 <xs:attribute name=
"convertWarningsToExceptions" type=
"xs:boolean" default=
"true"/>
201 <xs:attribute name=
"forceCoversAnnotation" type=
"xs:boolean" default=
"false"/>
202 <xs:attribute name=
"printerClass" type=
"xs:string" default=
"PHPUnit_TextUI_ResultPrinter"/>
203 <xs:attribute name=
"printerFile" type=
"xs:anyURI"/>
204 <xs:attribute name=
"processIsolation" type=
"xs:boolean" default=
"false"/>
205 <xs:attribute name=
"stopOnError" type=
"xs:boolean" default=
"false"/>
206 <xs:attribute name=
"stopOnFailure" type=
"xs:boolean" default=
"false"/>
207 <xs:attribute name=
"stopOnWarning" type=
"xs:boolean" default=
"false"/>
208 <xs:attribute name=
"stopOnIncomplete" type=
"xs:boolean" default=
"false"/>
209 <xs:attribute name=
"stopOnRisky" type=
"xs:boolean" default=
"false"/>
210 <xs:attribute name=
"stopOnSkipped" type=
"xs:boolean" default=
"false"/>
211 <xs:attribute name=
"failOnRisky" type=
"xs:boolean" default=
"false"/>
212 <xs:attribute name=
"failOnWarning" type=
"xs:boolean" default=
"false"/>
213 <xs:attribute name=
"beStrictAboutChangesToGlobalState" type=
"xs:boolean" default=
"false"/>
214 <xs:attribute name=
"beStrictAboutOutputDuringTests" type=
"xs:boolean" default=
"false"/>
215 <xs:attribute name=
"beStrictAboutResourceUsageDuringSmallTests" type=
"xs:boolean" default=
"false"/>
216 <xs:attribute name=
"beStrictAboutTestsThatDoNotTestAnything" type=
"xs:boolean" default=
"false"/>
217 <xs:attribute name=
"beStrictAboutTodoAnnotatedTests" type=
"xs:boolean" default=
"false"/>
218 <xs:attribute name=
"beStrictAboutCoversAnnotation" type=
"xs:boolean" default=
"false"/>
219 <xs:attribute name=
"checkForUnintentionallyCoveredCode" type=
"xs:boolean" default=
"false"/>
220 <xs:attribute name=
"enforceTimeLimit" type=
"xs:boolean" default=
"false"/>
221 <xs:attribute name=
"timeoutForSmallTests" type=
"xs:integer" default=
"1"/>
222 <xs:attribute name=
"timeoutForMediumTests" type=
"xs:integer" default=
"10"/>
223 <xs:attribute name=
"timeoutForLargeTests" type=
"xs:integer" default=
"60"/>
224 <xs:attribute name=
"testSuiteLoaderClass" type=
"xs:string" default=
"PHPUnit_Runner_StandardTestSuiteLoader"/>
225 <xs:attribute name=
"testSuiteLoaderFile" type=
"xs:anyURI"/>
226 <xs:attribute name=
"verbose" type=
"xs:boolean" default=
"false"/>
227 <xs:attribute name=
"stderr" type=
"xs:boolean" default=
"false"/>
228 <xs:attribute name=
"reverseDefectList" type=
"xs:boolean" default=
"false"/>
229 <xs:attribute name=
"registerMockObjectsFromTestArgumentsRecursively" type=
"xs:boolean" default=
"false"/>
231 <xs:group name=
"configGroup">
233 <xs:element ref=
"testSuiteFacet" minOccurs=
"0"/>
234 <xs:element name=
"groups" type=
"groupsType" minOccurs=
"0"/>
235 <xs:element name=
"testdoxGroups" type=
"groupsType" minOccurs=
"0"/>
236 <xs:element name=
"filter" type=
"filtersType" minOccurs=
"0"/>
237 <xs:element name=
"logging" type=
"loggersType" minOccurs=
"0"/>
238 <xs:element name=
"listeners" type=
"listenersType" minOccurs=
"0"/>
239 <xs:element name=
"php" type=
"phpType" minOccurs=
"0"/>
242 <xs:element name=
"testSuiteFacet" abstract=
"true"/>
243 <xs:element name=
"testsuite" type=
"testSuiteType" substitutionGroup=
"testSuiteFacet"/>
244 <xs:element name=
"testsuites" type=
"testSuitesType" substitutionGroup=
"testSuiteFacet"/>
245 <xs:complexType name=
"testSuitesType">
247 <xs:element name=
"testsuite" type=
"testSuiteType" maxOccurs=
"unbounded"/>
250 <xs:complexType name=
"testSuiteType">
252 <xs:group ref=
"pathGroup"/>
253 <xs:element name=
"exclude" type=
"xs:anyURI" minOccurs=
"0" maxOccurs=
"unbounded"/>
255 <xs:attribute name=
"name" type=
"xs:string" use=
"required"/>