【问题标题】:xUnit export support in PLUnitPLUnit 中的 xUnit 导出支持
【发布时间】:2016-02-20 08:51:54
【问题描述】:

我正在使用 plunit 包进行我的 prolog 单元测试 (SWI-Prolog 7.2)。

run_tests/0 在控制台上打印结果,但我想以大多数 CI 服务器都能理解的 xUnit XML 格式 导出 plunit 测试结果。有什么办法吗?

【问题讨论】:

  • 我不知道那种格式,但是把这样的东西放在一起应该很容易。具体来说,在控制台列表中输入(run_tests),你可以看到你需要做的就是替换那个简单的函数(特别是它使用的 report/0)来得到你想要的任何输出。

标签: unit-testing prolog swi-prolog xunit


【解决方案1】:

我假设 SWI-Prolog plunit 工具使用消息打印机制来生成其输出。如果为真,您应该能够通过使用message_hook/3 谓词拦截这些消息,以 xUnit XML 格式(或任何其他格式)导出单元测试结果:

http://www.swi-prolog.org/pldoc/doc_for?object=message_hook/3

巧合的是,我正在为 Logtalk 的单元测试工具 lgtunit 提供类似的支持(用于导出测试结果)。它应该让您了解如何为plunit 执行此操作。我今天提交了一个初步版本:

https://github.com/LogtalkDotOrg/logtalk3/blob/master/tools/lgtunit/NOTES.md https://github.com/LogtalkDotOrg/logtalk3/blob/master/tools/lgtunit/xunit_xml_report.lgt

就我而言,这种支持的目标是与 CI 服务器 Concourse 集成。不幸的是,似乎缺乏关于 xUnit XML 格式的明确信息,其中引用了不同版本的来源,例如哪些属性是必需的或可选的。我确实找到了这种格式的 XSD,但我不知道它的准确性还是只是另一种变体:

https://gist.github.com/erikd/4192748

【讨论】:

  • 谢谢,我刚开始为 SWI 编写一个类似的解决方案。我会知道以前是否开发了一个库,但显然没有。 lgtunit 的好点,如果有兴趣,我还创建了一个运行器来一次运行所有 logtalk 测试套件,并提供全局报告。
  • @Koryonik 当然。可以邮寄给我吗?谢谢。顺便说一句,您很可能已经知道它,但您也可以使用lgtunit 来测试普通的 Prolog 和 Prolog 模块代码。一个很好的例子是与 Logtalk 捆绑的 Prolog 一致性套件。
  • @Koryonik 哎呀!我已经在我的存储库克隆中拥有它。抱歉,事情太多了。
猜你喜欢
  • 2015-07-11
  • 1970-01-01
  • 1970-01-01
  • 2012-06-29
  • 1970-01-01
  • 2020-12-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多