【发布时间】:2015-10-24 15:16:53
【问题描述】:
我想使用 Stack 生成代码覆盖率报告。我运行命令
相当于(省略通过--test-arguments 传递给测试套件的选项):
$ stack test --coverage
这会执行测试,然后输出以下内容:
错误:myproject 的测试套件“测试”的覆盖率报告没有 考虑任何代码。一个可能的原因是如果您的测试套件构建 库代码(参见堆栈问题 #1008)。它也可能表明存在错误 堆栈或 hpc 程序。如果您认为您的问题,请报告此问题 覆盖报告应该有有意义的结果。
我认为它应该(这会创建空报告)。 GHC 选项对于 我的包裹的所有组件。不需要测试套件来重建 图书馆。毕竟,如果 Cabal 可以生成报告,Stack 应该可以 在相同的阴谋集团配置下这样做还是我弄错了?
我打开了 an issue on堆栈 建议的 GitHub 存储库。
过了一会儿,我决定创建一个好的旧沙箱并生成报告 使用 Cabal 代替(我真的需要看报告,你知道的)。 成功了 以前,但现在我得到:
$ cabal sandbox init
… <everything OK>
$ cabal update
… <everything OK>
$ cabal install --only-dependencies --enable-tests
… <everything OK>
$ cabal configure --enable-tests --enable-coverage
… <everything OK>
$ cabal build
… <everything OK>
$ cabal test
Running 2 test suites...
Test suite tests: RUNNING...
Test suite tests: PASS
Test suite logged to: dist/test/myproject-0.1.0-tests.log
hpc: can not find HUnit_DDLSMCRs3jyLBDbJPCH01j/Test.HUnit.Lang in ["./.hpc","./dist/hpc/vanilla/mix/myproject-0.1.0","./dist/hpc/vanilla/mix/tests"]
什么?我从没见过这个,虽然我生成了很多报告 前。上面有人刚刚决定我今天不会收到那份报告 好像。
您知道如何使用 Stack 生成覆盖率报告吗?有没有人 成功了吗?
【问题讨论】:
-
您使用的是哪个版本的
stack?最新版本更适用于hpc。我正在使用0.1.6.0,它大部分都有效。 -
@Yuras,
stack --version→Version 0.1.6.0, Git revision e22271f5ce9afa2cb5be3bad9cafa392c623f85c (2313 commits) x86_64. -
@Yuras,感谢您提供指向该问题的链接。我不是唯一一个得到这个的人!我猜也应该有一些关于我的问题的反馈。
标签: haskell testing code-coverage haskell-stack