Cabal没有执行quickCheck测试

时间:2015-03-19 14:59:38

标签: unit-testing haskell cabal quickcheck

我正在写一个cabal文件来安装用Haskell编写的库。我想在安装时执行一些测试(用quickCheck编写)。

cabal文件如下所示:

...
build-type:          Simple
cabal-version:       >=1.8


Test-Suite my_tests
  Type:               exitcode-stdio-1.0
  Hs-Source-Dirs:     test
  Main-is:            Tests.hs

Library
  Hs-Source-Dirs:     src
  Exposed-modules:      HsMesher.Fonctions
                      , HsMesher.Types
                      , HsMesher.Algorithmes1D.Arcs
                      , HsMesher.Algorithmes1D.Segments

  Build-depends:       base ==4.5.*

和执行测试的Test.hs文件是:

import Test.QuickCheck
import HsMesher.Algorithmes1D.Segments
import HsMesher.Algorithmes1D.Arcs
import HsMesher.Types

...

main = do
  putStrLn "My tests"
  quickCheck prop_test1
  quickCheck prop_test2

当我运行runhaskell test/Tests.hs时,测试例程正确执行。

但是当我输入cabal configure --enable-tests && cabal build && cabal test时,不会执行测试,我会收到以下消息:

cabal:未启用测试套件。你还记得配置吗? '--enable检验' 吗

但是,cabal install已正确安装了库,并使用cabal sdist正确存档。

你知道出了什么问题吗? 在将quickCheck与Cabal集成时,我有什么不明白的地方吗?

我正在使用cabal v1.14.0,ghc v7.4.1

1 个答案:

答案 0 :(得分:0)

在调用测试套件时不要忘记依赖非常重要,因为当您忘记它时,cabal不会明确地抱怨。

Test-Suite my_tests
  Type:               exitcode-stdio-1.0
  Hs-Source-Dirs:     test
  Main-is:            Tests.hs
  Build-depends:      base ==4.5.* , HsMesher, QuickCheck