仔细查看了 Hudson 资源(特别是CaseResult.java),我发现在<skipped/>
元素中包含一个<testcase/>
元素是我正在寻找的。
仅供将来参考,我正在生成的架构的 RELAX NG 紧凑语法(随意编辑/维护):
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
}
error = element error {
attribute message {text},
attribute type {text},
text
}
skipped = element skipped {
text
}
testcase = element testcase {
attribute classname {text},
attribute name {text},
attribute time {text},
(failure|error)?,
skipped?
}
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*
}
#----------------------------------------