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/4.8/en/appendixes.configuration.html">
5 This Schema file defines the rules by which the XML configuration file of PHPUnit 4.8 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="blacklist" type="filterType"/>
18 <xs:element name="whitelist" type="whiteListType" minOccurs="0"/>
21 <xs:element name="whitelist" type="whiteListType"/>
25 <xs:complexType name="filterType">
27 <xs:group ref="pathGroup"/>
28 <xs:element name="exclude" maxOccurs="unbounded" minOccurs="0">
30 <xs:group ref="pathGroup"/>
35 <xs:complexType name="whiteListType">
37 <xs:extension base="filterType">
38 <xs:attribute name="addUncoveredFilesFromWhitelist" default="false" type="xs:boolean"/>
39 <xs:attribute name="processUncoveredFilesFromWhitelist" default="true" type="xs:boolean"/>
43 <xs:complexType name="groupsType">
46 <xs:element name="include" type="groupType"/>
47 <xs:element name="exclude" type="groupType" minOccurs="0"/>
50 <xs:element name="exclude" type="groupType"/>
54 <xs:complexType name="groupType">
56 <xs:element name="group" type="xs:string" maxOccurs="unbounded"/>
59 <xs:complexType name="listenersType">
61 <xs:element name="listener" type="objectType" maxOccurs="unbounded"/>
64 <xs:complexType name="objectType">
66 <xs:element name="arguments" minOccurs="0">
68 <xs:group ref="argumentsGroup"/>
72 <xs:attribute name="class" type="xs:string" use="required"/>
73 <xs:attribute name="file" type="xs:anyURI"/>
75 <xs:complexType name="arrayType">
77 <xs:element name="element" type="argumentType" minOccurs="0" maxOccurs="unbounded"/>
80 <xs:complexType name="argumentType">
81 <xs:group ref="argumentChoice"/>
82 <xs:attribute name="key" use="required"/>
84 <xs:group name="argumentsGroup">
86 <xs:element name="array" type="arrayType" minOccurs="0" maxOccurs="unbounded"/>
87 <xs:element name="integer" type="xs:integer" minOccurs="0" maxOccurs="unbounded"/>
88 <xs:element name="string" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
89 <xs:element name="double" type="xs:double" minOccurs="0" maxOccurs="unbounded"/>
90 <xs:element name="null" minOccurs="0" maxOccurs="unbounded"/>
91 <xs:element name="object" type="objectType" minOccurs="0" maxOccurs="unbounded"/>
92 <xs:element name="file" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded"/>
93 <xs:element name="directory" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded"/>
96 <xs:group name="argumentChoice">
98 <xs:element name="array" type="arrayType" minOccurs="0" maxOccurs="unbounded"/>
99 <xs:element name="integer" type="xs:integer" minOccurs="0" maxOccurs="unbounded"/>
100 <xs:element name="string" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
101 <xs:element name="double" type="xs:double" minOccurs="0" maxOccurs="unbounded"/>
102 <xs:element name="null" minOccurs="0" maxOccurs="unbounded"/>
103 <xs:element name="object" type="objectType" minOccurs="0" maxOccurs="unbounded"/>
104 <xs:element name="file" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded"/>
105 <xs:element name="directory" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded"/>
108 <xs:complexType name="loggersType">
110 <xs:element name="log" type="loggerType" maxOccurs="unbounded"/>
113 <xs:complexType name="loggerType">
114 <xs:attribute name="type">
116 <xs:restriction base="xs:string">
117 <xs:enumeration value="coverage-html"/>
118 <xs:enumeration value="coverage-text"/>
119 <xs:enumeration value="coverage-clover"/>
120 <xs:enumeration value="coverage-crap4j"/>
121 <xs:enumeration value="coverage-xml"/>
122 <xs:enumeration value="json"/>
123 <xs:enumeration value="plain"/>
124 <xs:enumeration value="tap"/>
125 <xs:enumeration value="junit"/>
126 <xs:enumeration value="testdox-html"/>
127 <xs:enumeration value="testdox-text"/>
131 <xs:attribute name="target" type="xs:anyURI"/>
132 <xs:attribute name="lowUpperBound" type="xs:nonNegativeInteger" default="35"/>
133 <xs:attribute name="highLowerBound" type="xs:nonNegativeInteger" default="70"/>
134 <xs:attribute name="logIncompleteSkipped" type="xs:boolean" default="false"/>
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="mapTestClassNameToCoveredClassName" type="xs:boolean" default="false"/>
203 <xs:attribute name="printerClass" type="xs:string" default="PHPUnit_TextUI_ResultPrinter"/>
204 <xs:attribute name="printerFile" type="xs:anyURI"/>
205 <xs:attribute name="processIsolation" type="xs:boolean" default="false"/>
206 <xs:attribute name="stopOnError" type="xs:boolean" default="false"/>
207 <xs:attribute name="stopOnFailure" 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="beStrictAboutTestsThatDoNotTestAnything" type="xs:boolean" default="false"/>
212 <xs:attribute name="beStrictAboutOutputDuringTests" type="xs:boolean" default="false"/>
213 <xs:attribute name="beStrictAboutTestSize" type="xs:boolean" default="false"/>
214 <xs:attribute name="beStrictAboutTodoAnnotatedTests" type="xs:boolean" default="false"/>
215 <xs:attribute name="beStrictAboutChangesToGlobalState" type="xs:boolean" default="false"/>
216 <xs:attribute name="checkForUnintentionallyCoveredCode" type="xs:boolean" default="false"/>
217 <xs:attribute name="strict" type="xs:boolean" default="false"/>
218 <xs:attribute name="testSuiteLoaderClass" type="xs:string" default="PHPUnit_Runner_StandardTestSuiteLoader"/>
219 <xs:attribute name="testSuiteLoaderFile" type="xs:anyURI"/>
220 <xs:attribute name="timeoutForSmallTests" type="xs:integer" default="1"/>
221 <xs:attribute name="timeoutForMediumTests" type="xs:integer" default="10"/>
222 <xs:attribute name="timeoutForLargeTests" type="xs:integer" default="60"/>
223 <xs:attribute name="verbose" type="xs:boolean" default="false"/>
224 <xs:attribute name="stderr" type="xs:boolean" default="false"/>
226 <xs:group name="configGroup">
228 <xs:element ref="testSuiteFacet" minOccurs="0"/>
229 <xs:element name="groups" type="groupsType" minOccurs="0"/>
230 <xs:element name="filter" type="filtersType" minOccurs="0"/>
231 <xs:element name="logging" type="loggersType" minOccurs="0"/>
232 <xs:element name="listeners" type="listenersType" minOccurs="0"/>
233 <xs:element name="php" type="phpType" minOccurs="0"/>
234 <xs:element name="selenium" type="seleniumType" minOccurs="0"/>
237 <xs:complexType name="seleniumType">
239 <xs:element name="browser" type="browserType"/>
242 <xs:complexType name="browserType">
243 <xs:attribute name="name" type="xs:string"/>
244 <xs:attribute name="browser" type="xs:string"/>
245 <xs:attribute name="host" type="xs:anyURI"/>
246 <xs:attribute name="port" type="xs:nonNegativeInteger"/>
247 <xs:attribute name="timeout" type="xs:nonNegativeInteger"/>
249 <xs:element name="testSuiteFacet" abstract="true"/>
250 <xs:element name="testsuite" type="testSuiteType" substitutionGroup="testSuiteFacet"/>
251 <xs:element name="testsuites" type="testSuitesType" substitutionGroup="testSuiteFacet"/>
252 <xs:complexType name="testSuitesType">
254 <xs:element name="testsuite" type="testSuiteType" maxOccurs="unbounded"/>
257 <xs:complexType name="testSuiteType">
259 <xs:group ref="pathGroup"/>
260 <xs:element name="exclude" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded"/>
262 <xs:attribute name="name" type="xs:string" use="required"/>