a question that has been asked a number of times on the hudson mailing
list is what
is the schema of tthe xml that junit generates.
I have had a quick look at the code, and noticed that there two related schemas.
1) the xml that <junit> generates
and
2) the xml that <junitreport> uses internally.
Both these formats are used as input to other reporting tools -
including hudson.
(I assume that maven has a similar junit xml report format)
The xml that <junit> generates has a toplevel element of <testsuite> and nested
<properties>, <testcase>, <system-out> and <system-err> elements.
The xml that <junitreport> uses internally has a toploevel element of
<testsuites> and nested
<testsuite> elements. The content of these <testsuite> elements are the same as
the <testsuite> from the task <junit> *except* that it has two extra
attributes - "id" and "package"..
In any case, here is a first attempt at a schema for junit (in relaxng
compact syntax)
junit.rnc:
#----------------------------------------------------------------------------------
start = testsuite
property = element property {
attribute name {text},
attribute value {text}
}
properties = element properties {
property*
}
failure = element failure {
attribute message {text},
attribute type {text},
text
}
testcase = element testcase {
attribute classname {text},
attribute name {text},
attribute time {text},
failure?
}
testsuite = element testsuite {
attribute errors {xsd:integer},
attribute failures {xsd:integer},
attribute hostname {text},
attribute name {text},
attribute tests {xsd:integer},
attribute time {xsd:double},
attribute timestamp {xsd:dateTime},
properties,
testcase*,
element system-out {text},
element system-err {text}
}
#----------------------------------------------------------------------------------
and junitreport.rnc
#----------------------------------------------------------------------------------
include "junit.rnc" {
start = testsuites
testsuite = element testsuite {
attribute errors {xsd:integer},
attribute failures {xsd:integer},
attribute hostname {text},
attribute name {text},
attribute tests {xsd:integer},
attribute time {xsd:double},
attribute timestamp {xsd:dateTime},
attribute id {text},
attribute package {text},
properties,
testcase*,
element system-out {text},
element system-err {text}
}
}
testsuites = element testsuites {
testsuite*
}
#----------------------------------------------------------------------------------
Peter
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]