2012-01-23 6 views
9

मुझे यह समझाया गया कबाल के साथ कुछ quickcheck परीक्षण एकीकृत करने के कोशिश कर रहा हूँ। यह gist पता चलता है quickCheck फ़ंक्शन कि विफलता पर गैर शून्य स्थिति है, लेकिन मुझे लगता है कि व्यवहार नहीं मिल रहा है, इसलिए का उपयोग कर कबाल के exitcode-stdio-1.0 परीक्षण सूट प्रकार मेरे लिए काम करने के लिए प्रतीत नहीं होता जब तक कि मैं मेरे सभी परीक्षणों पर error कॉल करना चाहते हैं।QuickCheck बाहर निकलने की स्थिति, और कबाल एकीकरण

कैबल user guide में detailed-1.0 परीक्षण-सूट का भी उल्लेख है, लेकिन AFAICT यह अभी तक मौजूद नहीं है। क्या ये अब भी एक मामला है?

यह this one जैसे उत्तरों से लगता है कि बहुत से लोग test-framework package का उपयोग कर रहे हैं। यह मेरे लिए अधिक है, लेकिन क्या मुझे इसका उपयोग करना चाहिए?

मैं इस स्थिति से असंतुष्ट के बाईं तरह कर रहा हूँ।

चीजों के संस्करण मैं उपयोग कर रहा हूँ:

cabal-install version 0.10.2 
using version 1.10.1.0 of the Cabal library 
QuickCheck-2.4.1.1 

उत्तर

13

quickCheck's implementation को देखते हुए, यह वास्तव में कभी नहीं कार्यक्रम बाहर निकालता है। हालांकि, आप आसानी से इस व्यवहार quickCheckResult का उपयोग कर लागू कर सकते हैं:

import Control.Monad 
import Test.QuickCheck 
import Test.QuickCheck.Test 
import System.Exit 

main :: IO() 
main = do 
    result <- quickCheckResult prop 
    unless (isSuccess result) exitFailure 

मेरे समझ के साथ कि detailed-1.0 अभी तक माना जाता सामान्य उपयोग के लिए तैयार नहीं है, और कहा कि exitcode-stdio-1.0 अभी भी अब के लिए सिफारिश की परीक्षण समाधान है।

+4

मैं जानता हूँ कि यह एक 3 + साल हो गया है, लेकिन मैं सिर्फ यह पता लगाने की है कि आप भी 'आयात के लिए' isSuccess' "दायरे में होना करने के लिए" Test.QuickCheck.Test' करने की जरूरत है की कोशिश कर रहा तरह से बहुत अधिक समय बिताया। अगर किसी को भी यह समस्या हो रही है। एक तरफ ध्यान दें, क्या इसे बेहतर बनाने का कोई तरीका है? (यानी। दोनों 'आयात Test.QuickCheck' करने की जरूरत नहीं है लेकिन यह भी' Test.QuickCheck.Test'?) – conrad

6

मैं अपने Decimal पैकेज के नवीनतम संस्करण में परीक्षण ढांचे का इस्तेमाल किया। यह अधिक नहीं था; यह वही किया जो वांछित था। complete source code पर एक नज़र डालें यदि आप इसका उपयोग कैसे करें इसका एक उदाहरण चाहते हैं।

+0

उदाहरण के लिए धन्यवाद, मुझे लगता है कि मुझे लगता है कि मार्ग जाना होगा – jberryman