我正在尝试了解如何将一些快速检查测试与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
答案 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。