制作正确而完整的XML单元测试报告(Hudson)
-
05-10-2019 - |
题
我正在扩展 Svunit (R的单位测试套件,一部分 Sciviews),以便它也可以由哈德森读取输出。实际上,我已经有了可以做到这一点的东西,但是它无法处理“停用”测试。
看看我的意思,看看 protocol_junit.svTestData
方法中的方法 svtestdata.r 文件。
问题是我没有设法找到哈德森接受的模式的任何定义 <failure/>
和 <error/>
几个元素 <testcase/>
元素,但我没有设法看到一个 @Ignore @Test
装饰。
例如,许多其他人都问了同样的问题 这里也, ,但最后一个人 这一页 这是一个很好的起点,但不完整。例如,它没有提及 <error/>
我通过反复试验发现的元素。
我试图阅读哈德森阅读的来源,但我找不到从哪里开始。
有提示吗?
解决方案
仔细研究了哈德逊消息来源(尤其是 caseresult.java)我看到了包括 <skipped/>
a <testcase/>
元素是我想要的。
仅供将来参考,我正在制作的架构的放松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*
}
#----------------------------------------
不隶属于 StackOverflow