【问题标题】:Generate coverage report with stack使用堆栈生成覆盖率报告
【发布时间】: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


【解决方案1】:

就我而言,我仍然收到此错误。运行:

stack clean
stack test --coverage

解决了问题,正如报告的here。

【讨论】:

    【解决方案2】:

    上游最近的更改修复了它。应该为 0.1.7.0 及更高版本的用户解决。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-09-09
      • 2017-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-15
      • 1970-01-01
      相关资源
      最近更新 更多