我使用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文件)?
感谢。
答案 0 :(得分:4)
要使cabal
生成代码覆盖率报告,您可以在配置程序包时启用它:
cabal configure --enable-coverage
然后像往常一样运行测试:
cabal test
请注意,您可能需要使用较早--enable-library-coverage
的{{1}}。此外,cabal
已将IIRC hpc
整合在cabal中。
答案 1 :(得分:1)
我使用的是GHC 7.8.3和Cabal 1.22.0.0
您可以通过多种方式设置.tix文件的文件路径。
设置HPCTIXDIR环境变量。 tix文件将在提供的目录中创建。名称将格式化为-.tix 如果该目录不存在,则会创建该目录。
设置HPCTIXFILE环境变量。将使用您在当前工作目录中提供的文件名创建tix文件。您可以指定文件路径。但是,目录不会被创建。