我想使用Stack生成代码覆盖率报告。我运行的命令相当于(忽略通过传递给测试套件的选项--test-arguments
):
$ stack test --coverage
这将执行测试,然后输出以下内容:
错误:myproject测试套件“测试”的覆盖率报告未考虑任何代码。造成这种情况的一种可能原因是测试套件是否构建了库代码(请参阅堆栈问题#1008)。它还可能表示堆栈或hpc程序中存在错误。如果您认为承保范围报告应该有有意义的结果,请报告此问题。
我认为应该这样做(这将创建空报告)。GHC选项对于我包装的所有组件都是相同的。无需测试套件即可重建库。毕竟,如果Cabal可以生成报告,那么在相同的Cabal配置下,Stack应该能够做到这一点,还是我弄错了?
我已经按照建议在Stack 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生成覆盖率报告吗?有人成功吗?
上游的最新变化修复了它。应该为0.1.7.0和更高版本的用户解决。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句