Haskell 使用堆栈生成覆盖率报告
我想使用堆栈生成代码覆盖率报告。我运行命令 总计(忽略通过Haskell 使用堆栈生成覆盖率报告,haskell,testing,code-coverage,haskell-stack,Haskell,Testing,Code Coverage,Haskell Stack,我想使用堆栈生成代码覆盖率报告。我运行命令 总计(忽略通过--测试参数传递给测试套件的选项): 这将执行测试,然后输出以下内容: 错误:myproject的测试套件“测试”的覆盖率报告不存在 考虑任何代码。造成这种情况的一个可能原因是您的测试套件是否构建了 库代码(参见堆栈问题#1008)。它也可能表示存在错误 堆栈或hpc程序。如果你认为你的观点正确,请报告这个问题 覆盖率报告应具有有意义的结果 我认为应该(这会造成空报告)。GHC选项与其他选项相同 我的包的所有组件。不需要测试套件来重建 图
--测试参数传递给测试套件的选项):
这将执行测试,然后输出以下内容:
错误:myproject的测试套件“测试”的覆盖率报告不存在
考虑任何代码。造成这种情况的一个可能原因是您的测试套件是否构建了
库代码(参见堆栈问题#1008)。它也可能表示存在错误
堆栈或hpc程序。如果你认为你的观点正确,请报告这个问题
覆盖率报告应具有有意义的结果
我认为应该(这会造成空报告)。GHC选项与其他选项相同
我的包的所有组件。不需要测试套件来重建
图书馆。毕竟,如果阴谋集团能够生成报告,Stack应该能够
以同样的阴谋集团形式来做还是我错了
我已经开门了
堆栈
建议的GitHub回购协议
过了一会儿,我决定创建好的旧沙箱并生成报告
改用阴谋集团(你知道,我真的需要看报告)。它起作用了
以前,但现在我得到:
$cabal沙箱初始化
…
$cabal更新
…
$cabal安装--仅依赖项--启用测试
…
$cabal配置--启用测试--启用覆盖率
…
$cabal建筑
…
$cabal测试
正在运行2个测试套件。。。
测试套件测试:正在运行。。。
测试套件测试:通过
测试套件记录到:dist/Test/myproject-0.1.0-tests.log
hpc:在[“/.hpc”、“/dist/hpc/vanilla/mix/myproject-0.1.0”、“/dist/hpc/vanilla/mix/tests”中找不到hunitddlscrs3jylbdbjpch01j/Test.HUnit.Lang”
什么?虽然我生成了许多报告,但我从未见过这种情况
之前有人刚刚决定我今天不去拿那份报告,
似乎是这样
您知道如何使用堆栈生成覆盖率报告吗?有人吗
成功了吗?最近的更改修复了它。应该为0.1.7.0及更高版本的用户解决此问题。在我的情况下,我仍然收到此错误。运行:
stack clean
stack test --coverage
已解决问题,如报告所述。您使用的是哪个版本的stack
?最新版本与hpc
配合使用效果更好。我使用的是0.1.6.0
,它大部分都能正常工作。另请参见@Yuras,stack--version
→ <代码>0.1.6.0版,Git版本E22271F5CE9AFA2CB5BE3BAD9CAFA392CC623F85C(2313次提交)x86_64
@Yuras,感谢您提供该问题的链接。我不是唯一一个得到这个的人!我想我的问题也应该有一些反馈。
$ 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 clean
stack test --coverage