QuickCheck 2批处理

Dav*_*vid 10 haskell quickcheck batch-processing

QuickCheckBatch模块已被删除,版本2(1.2.0.1仍然有它).因此,我总是觉得 - mapM_在一起进行多项测试是一种hacky.我是否忽略了QuickCheck 2中的后续功能?是否存在将独立测试组合在一起的规范方法?

jto*_*bin 9

通过"当前模块"中的所有测试将"大或回家"选项组合在一起Test.QuickCheck.All.它需要Template Haskell,所有属性都必须以prop_.例如:

{-# LANGUAGE TemplateHaskell #-}

import Test.QuickCheck.All

prop_one, prop_two :: a -> Bool
prop_one = const True
prop_two = const True

runTests :: IO Bool
runTests = $quickCheckAll

main :: IO ()
main = runTests >>= \passed -> if passed then putStrLn "All tests passed."
                                         else putStrLn "Some tests failed."
Run Code Online (Sandbox Code Playgroud)

  • 两个重要的注意事项:首先,导入模块的属性似乎不包括在内。其次,(看起来很奇怪),在 GHC 7.8 中,您需要在“runTests = $quickCheckAll”行之前插入“return []”。有关更多信息,请参阅[模块 haddock 页面](http://hackage.haskell.org/package/QuickCheck-2.7.6/docs/Test-QuickCheck-All.html)。 (2认同)