我正在扩展 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*
}
#----------------------------------------
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top