Haskell 快速检查2批处理

Haskell 快速检查2批处理,haskell,batch-processing,quickcheck,Haskell,Batch Processing,Quickcheck,使用()删除了QuickCheck的批处理模块。正因为如此,我总觉得把多个测试放在一起是一种黑客行为。我是否忽略了QuickCheck 2中的后续功能?是否有一种将独立测试分组的标准方法?有一个“大或回家”选项,通过Test.QuickCheck.all将当前模块中的所有测试分组在一起。它需要模板Haskell,并且所有属性都必须以prop\uuu开头。例: {-# LANGUAGE TemplateHaskell #-} import Test.QuickCheck.All prop_on

使用()删除了QuickCheck的批处理模块。正因为如此,我总觉得把多个测试放在一起是一种黑客行为。我是否忽略了QuickCheck 2中的后续功能?是否有一种将独立测试分组的标准方法?

有一个“大或回家”选项,通过
Test.QuickCheck.all将当前模块中的所有测试分组在一起。它需要模板Haskell,并且所有属性都必须以
prop\uuu
开头。例:

{-# 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."

请看和。两个重要注意事项:首先,导入模块的属性似乎不包括在内。其次,(看起来很奇怪),在GHC 7.8中,需要在
runTests=$quickCheckAll
行之前插入
return[]
。有关更多信息,请参阅。如果您正在通过cabal测试套件进行测试,此
main
可能更适合您:
main=runTests>>=\passed->如果通过,则exitSuccess else exitFailure
。您还需要
导入System.Exit(exitSuccess,exitFailure)