JUnit is pretty ubiquitous, lots of services and results viewers understand it, in particular gitlab and jenkins know how to consume JUnit xml. This means projects using CI services can have their test results consumed automatically. Fixes: #6972pull/7018/head
parent
0c3bb15357
commit
7b7f93a09f
4 changed files with 238 additions and 0 deletions
@ -0,0 +1,96 @@ |
||||
<?xml version="1.0" encoding="UTF-8" ?> |
||||
<!-- from https://svn.jenkins-ci.org/trunk/hudson/dtkit/dtkit-format/dtkit-junit-model/src/main/resources/com/thalesgroup/dtkit/junit/model/xsd/junit-4.xsd --> |
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> |
||||
|
||||
<xs:element name="failure"> |
||||
<xs:complexType mixed="true"> |
||||
<xs:attribute name="type" type="xs:string" use="optional"/> |
||||
<xs:attribute name="message" type="xs:string" use="optional"/> |
||||
</xs:complexType> |
||||
</xs:element> |
||||
|
||||
<xs:element name="error"> |
||||
<xs:complexType mixed="true"> |
||||
<xs:attribute name="type" type="xs:string" use="optional"/> |
||||
<xs:attribute name="message" type="xs:string" use="optional"/> |
||||
</xs:complexType> |
||||
</xs:element> |
||||
|
||||
<xs:element name="properties"> |
||||
<xs:complexType> |
||||
<xs:sequence> |
||||
<xs:element ref="property" maxOccurs="unbounded"/> |
||||
</xs:sequence> |
||||
</xs:complexType> |
||||
</xs:element> |
||||
|
||||
<xs:element name="property"> |
||||
<xs:complexType> |
||||
<xs:attribute name="name" type="xs:string" use="required"/> |
||||
<xs:attribute name="value" type="xs:string" use="required"/> |
||||
</xs:complexType> |
||||
</xs:element> |
||||
|
||||
<xs:element name="skipped"> |
||||
<xs:complexType mixed="true"> |
||||
<xs:attribute name="message" type="xs:string" use="optional"/> |
||||
</xs:complexType> |
||||
</xs:element> |
||||
|
||||
<xs:element name="system-err" type="xs:string"/> |
||||
<xs:element name="system-out" type="xs:string"/> |
||||
|
||||
<xs:element name="testcase"> |
||||
<xs:complexType> |
||||
<xs:sequence> |
||||
<xs:element ref="skipped" minOccurs="0" maxOccurs="1"/> |
||||
<xs:element ref="error" minOccurs="0" maxOccurs="unbounded"/> |
||||
<xs:element ref="failure" minOccurs="0" maxOccurs="unbounded"/> |
||||
<xs:element ref="system-out" minOccurs="0" maxOccurs="unbounded"/> |
||||
<xs:element ref="system-err" minOccurs="0" maxOccurs="unbounded"/> |
||||
</xs:sequence> |
||||
<xs:attribute name="name" type="xs:string" use="required"/> |
||||
<xs:attribute name="assertions" type="xs:string" use="optional"/> |
||||
<xs:attribute name="time" type="xs:string" use="optional"/> |
||||
<xs:attribute name="classname" type="xs:string" use="optional"/> |
||||
<xs:attribute name="status" type="xs:string" use="optional"/> |
||||
</xs:complexType> |
||||
</xs:element> |
||||
|
||||
<xs:element name="testsuite"> |
||||
<xs:complexType> |
||||
<xs:sequence> |
||||
<xs:element ref="properties" minOccurs="0" maxOccurs="1"/> |
||||
<xs:element ref="testcase" minOccurs="0" maxOccurs="unbounded"/> |
||||
<xs:element ref="system-out" minOccurs="0" maxOccurs="1"/> |
||||
<xs:element ref="system-err" minOccurs="0" maxOccurs="1"/> |
||||
</xs:sequence> |
||||
<xs:attribute name="name" type="xs:string" use="required"/> |
||||
<xs:attribute name="tests" type="xs:string" use="required"/> |
||||
<xs:attribute name="failures" type="xs:string" use="optional"/> |
||||
<xs:attribute name="errors" type="xs:string" use="optional"/> |
||||
<xs:attribute name="time" type="xs:string" use="optional"/> |
||||
<xs:attribute name="disabled" type="xs:string" use="optional"/> |
||||
<xs:attribute name="skipped" type="xs:string" use="optional"/> |
||||
<xs:attribute name="timestamp" type="xs:string" use="optional"/> |
||||
<xs:attribute name="hostname" type="xs:string" use="optional"/> |
||||
<xs:attribute name="id" type="xs:string" use="optional"/> |
||||
<xs:attribute name="package" type="xs:string" use="optional"/> |
||||
</xs:complexType> |
||||
</xs:element> |
||||
|
||||
<xs:element name="testsuites"> |
||||
<xs:complexType> |
||||
<xs:sequence> |
||||
<xs:element ref="testsuite" minOccurs="0" maxOccurs="unbounded"/> |
||||
</xs:sequence> |
||||
<xs:attribute name="name" type="xs:string" use="optional"/> |
||||
<xs:attribute name="time" type="xs:string" use="optional"/> |
||||
<xs:attribute name="tests" type="xs:string" use="optional"/> |
||||
<xs:attribute name="failures" type="xs:string" use="optional"/> |
||||
<xs:attribute name="disabled" type="xs:string" use="optional"/> |
||||
<xs:attribute name="errors" type="xs:string" use="optional"/> |
||||
</xs:complexType> |
||||
</xs:element> |
||||
|
||||
</xs:schema> |
@ -0,0 +1,4 @@ |
||||
## Meson test now produces JUnit xml from results |
||||
|
||||
Meson will now generate a JUnit compatible XML file from test results. it |
||||
will be in the meson-logs directory and is called testlog.junit.xml. |
Loading…
Reference in new issue