我使用 Cabal 来运行我的测试。
以下是它在 .cabal
文件中的配置方式:
test-suite test
type: exitcode-stdio-1.0
main-is: Test.hs
build-depends: base >= 4.7 && < 4.8, containers >=0.5 && <0.6, ghc, test-framework >=0.8 && <0.9, QuickCheck >=2.7 && <2.8, HUnit >=1.2 && <1.3, test-framework-hunit, test-framework-quickcheck2
default-language: Haskell2010
ghc-options: -Wall -fhpc
当我第一次运行测试时,一切正常。
但是,如果我更改测试并再次运行它们,则会收到以下错误:
Hpc failure: module mismatch with .tix/.mix file hash number
(perhaps remove test.tix file?)
所以,我需要手动删除 .tix
文件。
有办法解决这个问题吗?
顺便问一下,有没有办法让这个.tix
文件生成在dist
目录而不是根目录?
如何配置我的 Cabal 文件以便与 HPC 良好配合(即在 dist
目录中生成生成的 HTML 文件)?
谢谢。
最佳答案
要使 cabal
生成代码覆盖率报告,您可以在配置包时启用它:
cabal configure --enable-coverage
然后照常运行测试:
cabal test
请注意,您可能需要使用旧版 cabal
来使用 --enable-library-coverage
。此外,ghc-7.6
中的 IIRC hpc
集成在 cabal 中也被破坏。
关于haskell - Cabal 和 HPC 以及运行代码覆盖率测试时的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28416827/