2012-11-23 28 views
10

Batchモジュールはversion 21.2.0.1 still has it)で除去しました。このため、私はいつも一緒にハックの一種である複数のテストを-ing mapM_のように感じています。 QuickCheck 2の後継機能を見落としていますか?独立したテストをまとめてグループ化する標準的な方法はありますか?QuickCheck 2バッチ処理QuickCheckの

+3

[ 'テストframework']を見(http://hackage.haskell.org/package/test-framework)および['テストフレームワークquickcheck2'](HTTP:// hackage .haskell.org/package/test-framework-quickcheck2)。 – dflemstr

答えて

9

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." 
+1

2つの重要なメモ:まず、インポートされたモジュールのプロパティは含まれていないようです。第二に、(それは非常に奇妙に見える)、GHC 7.8にあなたが返す '挿入する必要がある[]'ラインの前に 'runtestsと書い= $ quickCheckAll'。詳細については、[モジュールハドックページ](http://hackage.haskell.org/package/QuickCheck-2.7.6/docs/Test-QuickCheck-All.html)を参照してください。 – MasterMastic

+0

カバールのテストスイートを使ってテストしている場合、この 'main'はおそらくあなたに適しています:' main = runTests >> = \ passed - >渡されたらexitSuccess else exitFailure'。また、 'import System.Exit(exitSuccess、exitFailure)'も必要です。 – MasterMastic

関連する問題