Batch
क्विक चेक के मॉड्यूल को version 2 (1.2.0.1 still has it) से हटा दिया गया था। इस वजह से, मैं हमेशा mapM_
की तरह महसूस कर रहा हूं- कई परीक्षण एक साथ हैकी की तरह है। क्या मैं क्विक चेक 2 में उत्तराधिकारी सुविधा देख रहा हूं? स्वतंत्र परीक्षणों को एक साथ समूहित करने का एक कैननिक तरीका है?क्विक चेक 2 बैच प्रोसेसिंग
उत्तर
Test.QuickCheck.All
के माध्यम से वर्तमान मॉड्यूल में सभी परीक्षणों को एक साथ समूहित करने का 'बड़ा या घर जाओ' विकल्प है। इसके लिए टेम्पलेट हास्केल की आवश्यकता है, और सभी गुण 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."
दो महत्वपूर्ण नोट्स: सबसे पहले, आयातित मॉड्यूल से गुण शामिल नहीं लगते हैं। दूसरा, (और यह बहुत अजीब लग रहा है), जीएचसी 7.8 में आपको 'runTests = $ quickCheckAll' पंक्ति से पहले' वापसी [] 'डालना होगा। अधिक जानकारी के लिए [मॉड्यूल हैडॉक पेज] देखें (http://hackage.haskell.org/package/QuickCheck-2.7.6/docs/Test-QuickCheck-All.html)। – MasterMastic
यदि आप एक कैबल टेस्ट-सूट के माध्यम से परीक्षण कर रहे हैं, तो यह 'मुख्य' शायद आपको बेहतर लगेगा: 'main = runTests >> = \ pass -> अगर पास हो गया तो बाहर निकलें और आगे निकलें विफलता '। और आपको सिस्टम आयात करने की भी आवश्यकता होगी। एक्जिट (exitSuccess, exitFailure) '। – MasterMastic
पर देखो [ 'परीक्षण framework'] (http://hackage.haskell.org/package/test-framework) और [' परीक्षण ढांचा-quickcheck2'] (http: // hackage .haskell.org/पैकेज/परीक्षण ढांचा-quickcheck2)। – dflemstr