问题 具有持续集成的HUnit / QuickCheck


是否有任何扩展到HUnit或QuickCheck,允许持续集成系统,如  做详细的测试结果报告?

到目前为止,我最好的想法是简单地将测试作为构建脚本的一部分触发,并依赖测试以非零退出代码进行失败。这对于在测试失败时获得注意力是有效的,但是将构建失败与测试失败混淆并且需要涉及通过控制台输出来确定问题的来源。

如果这是当前工具的最佳选择,我的想法是为HUnit编写一个报告模块,它将产生输出 JUnit XML格式,然后将CI工具指向它,好像它是在报告Java项目一样。不过,这似乎有点过时了,所以我很感激您对现有选项和新开发方向的看法。


10784
2017-07-10 21:46


起源

模仿JUnit XML格式似乎是一种相当不错的方式来获得最大的编码降压。看看HUnit是否已经支持它了。 QuickCheck有点棘手,因为它不是真正传统的XUnit风格,尽管你也可能会把它扯掉。 - Edward Z. Yang
也许有点相关: stackoverflow.com/questions/4687387/organizing-haskell-tests - hvr


答案:


测试框架包 提供了使用不同测试范例集成测试的工具,包括HUnit和QuickCheck,其控制台测试运行器可以传递一个标志,使其生成与JUnit兼容的XML。我们将它与Jenkins一起用于持续集成。

调用示例:

$ ./test --jxml=test-results.xml

11
2017-07-11 05:11



顺便说一下,你是否设法在Jenkins中整合代码覆盖图? - hvr
谢谢你!我同意@hvr一样,整合hpc报告也很酷。它应该不会太难 hpc markup... - acfoltzer
我如何得到 --jxml 变成一个 cabal install --enable-tests-invocation? - ShiDoiSi


我刚刚发布了一个包,它根据包含quickCheck属性的模块生成测试套件: http://hackage.haskell.org/package/tasty-integrate

这是目前test-framework / delicious之上的一步,因为它强制将它们从文件系统中拉出/聚合,而不是依赖于每个文件的记录保存。我希望这有助于您的CI流程。


2
2018-02-02 04:35