Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell Cabal和HPC以及在代码覆盖率下运行测试时出现的错误_Haskell_Cabal - Fatal编程技术网

Haskell Cabal和HPC以及在代码覆盖率下运行测试时出现的错误

Haskell Cabal和HPC以及在代码覆盖率下运行测试时出现的错误,haskell,cabal,Haskell,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 &&

我用阴谋集团来进行测试

以下是如何在
.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
因此,我需要手动删除
.tix
文件

有没有办法解决这个问题

顺便问一下,有没有办法让这个
.tix
文件在
dist
目录而不是根目录中生成

如何配置我的Cabal文件以与HPC很好地协作(即,将生成的HTML文件放在
dist
目录中)


谢谢。

要使
cabal
生成代码覆盖率报告,您可以在配置软件包时启用:

cabal配置--启用覆盖范围
然后像往常一样运行测试:

cabal测试

请注意,您可能需要使用较旧的
阴谋集团
启用库覆盖范围。此外,IIRC
hpc
在阴谋集团中的集成因
ghc-7.6
而中断,我正在使用ghc 7.8.3和阴谋集团1.22.0.0

您可以通过几种方式设置.tix文件的文件路径

  • 设置HPCTIXDIR环境变量。tix文件将在提供的目录中创建。名称的格式将为-.tix 如果目录不存在,将创建它

  • 设置HPCTIXFILE环境变量。将使用您在当前工作目录中提供的文件名创建tix文件。可以指定文件路径。但是,不会创建目录


  • 您是否正在使用
    --启用覆盖范围
    ?如果你没有,那么你可能应该。如果您需要,那么您就不需要
    -fhpc
    。不,我不使用它。我刚刚尝试使用它,但出现了以下错误:
    cabal:无法识别的“测试”选项--在运行
    cabal测试时启用覆盖率--
    。《阴谋集团用户指南》似乎没有说明如何使用它。你能解释一下如何使用它吗?谢谢。您应该在配置时启用该标志:
    cabal configure--enable converage
    。然后像往常一样运行测试。谢谢。这正是我们想要的。如果你把它作为一个答案,我会接受的。启用覆盖和fhpc之间的有效区别是什么?我两者都用。这是一个问题吗?我应该如何运行我的应用程序来获取dist目录中的*.tix文件?我尝试了
    cabal run
    ,但*.tix文件是在当前目录中创建的。@antoyo try
    HPCTIXFILE
    环境变量。尝试
    cabaltest-v3
    查看
    cabal
    如何使用它。
    Hpc failure: module mismatch with .tix/.mix file hash number
    (perhaps remove test.tix file?)