我正在使用plunit
包进行我的prolog单元测试(SWI-Prolog 7.2)。
run_tests/0
控制台上打印结果,但我想以大多数 CI 服务器理解的 xUnit XML 格式导出 plunit 测试结果。有什么办法吗?
我假设SWI-Prolog plunit
工具使用消息打印机制来生成其输出。如果为 true,则应该能够以 xUnit XML 格式(或任何其他格式)导出单元测试结果,方法是使用 message_hook/3
谓词截获这些消息:
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.mdhttps://github.com/LogtalkDotOrg/logtalk3/blob/master/tools/lgtunit/xunit_xml_report.lgt
就我而言,此支持的目标是与 CI 服务器 Concourse 集成。不幸的是,似乎缺乏关于xUnit XML格式的明确信息,来源引用了不同版本,例如哪些属性是必需的或可选的。我确实找到了这种格式位的 XSD,我不知道它的准确性,或者它是否只是另一种变体:
https://gist.github.com/erikd/4192748