我想使用Stack生成代码覆盖率报告。我运行命令
等于(省略通过--test-arguments
传递给测试套件的选项):
$ stack test --coverage
执行测试,然后输出以下内容:
错误:myproject的测试套件"测试"的覆盖率报告没有 考虑任何代码。一个可能的原因是,如果您的测试套件构建 库代码(参见堆栈问题#1008)。它也可能表示存在错误 堆栈或hpc程序。如果你认为你的话,请报告这个问题 报道报告应该有意义的结果。
我认为应该(这会创建空报告)。 GHC选项相同 我的包的所有组件。没有必要使用测试套件来重建 图书馆。毕竟,如果Cabal可以生成报告,Stack应该可以 给定相同的Cabal配置或者我错了吗?
我已经打开了 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生成覆盖率报告吗?有没有人 这成功了吗?
答案 0 :(得分:1)
答案 1 :(得分:0)
上游最近的变化修复了它。应该为0.1.7.0及更高版本的用户解决。