QuickCheck 2 batch processing
batch-processing, haskell, quickcheck
Solution
There's the 'go big or go home' option of grouping together all tests in the current module via `Test.QuickCheck.All`. It requires Template Haskell, and all properties must begin with `prop_`. Ex:
{-# 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."
Problem
The `Batch` module of QuickCheck was removed with version 2 (1.2.0.1 still has it). Because of this, I'm always feeling like `mapM_`-ing multiple tests together is kind of hacky. Am I overlooking the successor feature in QuickCheck 2? Is there a canonical way of grouping independent tests together?