2013-02-23 16 views
8

मैं एक तरीके के रूप से स्थापित कबाल निर्माण करने के लिए और अधिक महत्वपूर्ण बात, मेरे Haskell परियोजनाओं का परीक्षण का उपयोग करने की कोशिश कर रहा है, जिस तरह से Maven करने के लिए एक सा एक जैसे जावा परियोजनाओं में प्रयोग किया जाता है, मुख्य रूप से, क्योंकि यह लगता है जेनकिंस या सीआई या इतने में एकीकृत करने के लिए एक अच्छा तरीका बनें, और ऐसा लगता है कि आपको विकास वातावरण की आवश्यकता नहीं है और इसलिए यह जांचने और पुष्टि करने के लिए सेट किया गया है कि कोड संकलित और सही है या नहीं या नहीं।हास्केल कबाल QuickCheck एकता

वैसे भी, मैं इसके लिए क्विक चेक और हनीट का उपयोग कर रहा हूं। स्टैक एक्सचेंज पर here पर एक और पोस्ट में मुझे डिस्ट्रीब्यूशन में फ़ंक्शन टेस्ट का उपयोग करके हनीट और कैबल को एकीकृत करने का एक अच्छा तरीका मिला। मेरे परीक्षण मॉड्यूल में एक खुला परीक्षण सरणी बनाने के लिए। काम करता है।

मैं,

import qualified Distribution.TestSuite.QuickCheck2 as CabalQuickCheck 

    alwaysFalseOneArg::Int->(Int,Int) 
    alwaysFalseOneArg x = (x,x) 

    quickCheckPropOneArg = \s->let (a,b)=alwaysFalseOneArg s in a==b && a/=b 

    cabalQCTest = CabalQuickCheck.test "test" quickCheckPropOneArg 

    tests=cabalQCTest:[] 

quickcheck के साथ सेट अप की एक ही शैली करने की कोशिश की है कि मैं इस परीक्षण असफल देखना चाहते हैं।

कबाल फ़ाइल मैं HUnit साथ काम करता है की स्थापना की, चल रहा है और नाकाम रहने या जितना वे नाकाम रहने नहीं HUnit परीक्षण के साथ। यदि मैं क्विक चेक परीक्षण करने के लिए एक ही सेट अप का उपयोग करता हूं, तो कैबल मुझे बताता है कि इसे वास्तव में एक परीक्षण सूट मिला है, लेकिन इसमें कोई परीक्षण नहीं है। मैंने वितरण के site पर उल्लिखित दृष्टिकोण की कोशिश की है। TestSuite.QuickCheck2 भी, लेकिन वहां ऐसा लगता है कि परीक्षण का पर्दाफाश कैसे किया जाए और मुझे यह चलाने के लिए प्रबंधन नहीं लगता है। मैं अब एक नुकसान में थोड़ा सा हूं, मैं उन त्वरित जांच परीक्षणों को जल्दी से चला सकता हूं लेकिन कैबल के साथ नहीं और मैं यह चाहता हूं कि यह मेरे सभी परीक्षणों और कोड को तुरंत सत्यापित करने में सक्षम हो और इसे जेनकींस में इस्तेमाल करें। किसी को भी एक विचार?

मैंने सभी जानकारी देने की कोशिश की जो मुझे लगता है कि अधिक जटिल सामग्री के बिना जरूरी है इसलिए मैंने पूरी कैबल फ़ाइल पोस्ट नहीं की और इसी तरह, यदि यह आवश्यक होगा, तो मैं निश्चित रूप से ऐसा करूँगा। मुझे कुछ समान पद मिलते हैं, लेकिन उनमें से अधिकतर विस्तृत-0.9 की तुलना में कुछ और उपयोग करने के लिए उबालते हैं जो एक दयालु होगा क्योंकि यह हनीट के साथ सेट अप के रूप में काफी अच्छी तरह से काम करता है और मैं हुनिट और क्विक चेक दोनों का उपयोग करना चाहता हूं वैसे ही, ह्यूनिट और क्विक चेक परीक्षणों को समान रूप से एक परीक्षण सरणी को उजागर करना।

कैस्पर

+0

यहाँ एक संभव उदाहरण है: https://github.com/patperry/hs-monte-carlo/blob/master/monte-carlo.cabal और मुख्य बुला QC के साथ एक परीक्षण: https: // GitHub .com/patperry/hs-monte-carlo/blob/master/test/Main.hs – gliptak

+1

gliptak की टिप्पणी के बाद - मैं परीक्षण-ढांचे का उपयोग करके जांच करूंगा; मुझे यह कुछ और सुविधाजनक लगता है। एक [अतिरिक्त] (https://github.com/isturdy/q/blob/master/tests/Tests.hs) [उदाहरण] (https://github.com/isturdy/q/blob/master/tests/Data /Queue/RealtimeTests.hs)। – isturdy

उत्तर

2

मैं isturdy से सहमत: मैं निश्चित रूप test-framework + test-framework-quickcheck2 पर एक जाना होगा। एक परियोजना में उन्हें एक साथ उपयोग करने के तरीके के बारे में this example देखें। prop_* नामक गुणों पर ध्यान दें।

तुम भी परीक्षण उत्पादन कैसा दिखता है देखने के लिए परियोजना haskell-minecraft-tool की जाँच कर सकते हैं। साथ .cabal फ़ाइल पर

cabal configure --enable-tests && cabal build && cabal test 

देखो परीक्षण चलाने के यहाँ देखने के लिए संकुल क्या आवश्यक हैं। अर्थात् ये test-framework, test-framework-quickcheck2, QuickCheck हैं।

संबंधित मुद्दे