我正在尝试了解如何将一些快速检查测试与cabal集成在一起。此gist建议失败时quickCheck
函数返回非零状态,但我没有得到该行为,因此使用cabal的exitcode-stdio-1.0
测试套件类型对我来说似乎不起作用,除非我想在所有测试中都调用error
。
团体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
最佳答案
查看 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
仍然是目前推荐的测试解决方案。