PLUnit中的xUnit导出支持

时间:2016-02-18 10:38:59

标签: unit-testing prolog swi-prolog xunit

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

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

1 个答案:

答案 0 :(得分:1)

我假设SWI-Prolog plunit工具使用消息打印机制来生成其输出。如果为true,您应该能够通过使用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