我正在尝试了解如何将一些快速检查测试与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仍然是目前推荐的测试解决方案。

10-08 12:49