11

我试图了解如何将一些快速检查测试与 cabal 集成。这个要点表明该quickCheck函数在失败时返回非零状态,但我没有得到这种行为,所以使用 cabal 的exitcode-stdio-1.0测试套件类型似乎对我不起作用,除非我想调用error我的所有测试。

cabal用户指南还提到了一个detailed-1.0测试套件,但 AFAICT 这还不存在。还是这样吗?

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

我对这种情况有点不满意。

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

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

2 回答 2

17

查看quickCheck的实现,它确实从未退出程序。但是,您可以使用以下方法轻松实现此行为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仍然是推荐的测试解决方案。

于 2012-01-23T18:33:09.620 回答
6

我在我的Decimal包的最新版本中使用了测试框架。这并不过分。它做了想要的。如果您想了解如何使用它的示例,请查看完整的源代码。

于 2012-01-23T19:24:02.470 回答