QuickCheck在故障和cabal集成时退出状态

时间:2012-01-23 18:14:05

标签: haskell cabal quickcheck

我正在尝试了解如何将一些快速检查测试与cabal集成。这个gist表明quickCheck函数在失败时返回非零状态,但我没有得到这种行为,因此使用cabal的exitcode-stdio-1.0测试套件类型似乎不起作用我,除非我想在我的测试中打电话给error

cabal user guide还提到了detailed-1.0测试套件,但AFAICT尚不存在。那还是这样吗?

似乎this one这样的答案很多人都在使用test-framework package。这对我来说太过分了,但这是我应该用的吗?

我对这种情况感到不满意。

我正在使用的东西的版本:

cabal-install version 0.10.2
using version 1.10.1.0 of the Cabal library
QuickCheck-2.4.1.1

2 个答案:

答案 0 :(得分:13)

quickCheck's implementation,它确实永远不会退出该计划。但是,您可以使用quickCheckResult轻松实现此行为:

import Control.Monad
import Test.QuickCheck
import Test.QuickCheck.Test
import System.Exit

main :: IO ()
main = do
  result <- quickCheckResult prop
  unless (isSuccess result) exitFailure

我的理解是,detailed-1.0尚未被认为可以用于一般用途,exitcode-stdio-1.0目前仍是推荐的测试解决方案。

答案 1 :(得分:6)

我在最新版本的Decimal包中使用了test-framework。这不是矫枉过正;它只是想要的东西。如果您想要一个如何使用它的示例,请查看complete source code

相关问题