QuickCheck 2 пакетная обработка

Модуль Batch QuickCheck был удален с помощью версии 2 (1.2.0.1 все еще есть). Из-за этого, я всегда чувствую себя как mapM_ -в нескольких тестах вместе, это хакка. Могу ли я игнорировать функцию преемника в QuickCheck 2? Существует ли канонический способ группировки независимых тестов вместе?

Ответ 1

Там опция "go big or go home" объединяет все тесты в текущем модуле через Test.QuickCheck.All. Для этого требуется шаблон 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."