我使用Cabal來運行我的測試。使用代碼覆蓋率運行測試時的Cabal和HPC以及錯誤
這裏是它是如何在.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
當我運行測試的第一次,一切都OK了。
不過,如果我更改了測試,並再次運行它們,我得到以下錯誤:
Hpc failure: module mismatch with .tix/.mix file hash number
(perhaps remove test.tix file?)
所以,我需要手動刪除.tix
文件。
有沒有辦法擺脫這個問題?
順便問一下,有沒有辦法在dist
目錄中生成這個.tix
文件而不是根目錄?
如何配置我的Cabal文件與HPC很好地協同工作(即在dist
目錄中生成HTML文件)?
謝謝。
您是否在使用「--enable-coverage」?如果你不這樣做,那麼你可能應該。如果你這樣做,那麼你不需要'-fhpc'。 – Yuras 2015-02-09 18:44:47
不,我不使用它。我只是試圖使用它,但我得到以下錯誤:'cabal:無法識別的'測試'選項 - 啓用覆蓋率'當運行'cabal測試 - 啓用覆蓋率'。 Cabal用戶指南似乎並未指出如何使用它。你能解釋我如何使用它嗎?謝謝。 – antoyo 2015-02-09 18:55:38
您應該在配置時啓用標誌:'cabal configure --enable-converage'。然後照常運行測試。 – Yuras 2015-02-09 19:12:26