2011-08-09 9 views
21

क्या कोई भी आर प्रोग्रामिंग के साथ निरंतर एकीकरण करने का तरीका जानता है? मैं यूनिट परीक्षण करने के लिए svUnit पैकेज जैसे उपकरणों से अवगत हूं, लेकिन क्या किसी ने इसे हडसन/जेनकींस के साथ चलाने की कोशिश की है?निरंतर एकीकरण (हडसन/जेनकींस) और आर प्रोग्रामिंग

+0

+1 मुझे इसमें भी रूचि है, ताकि मेरे परीक्षणों को तोड़ने वाले सीआरएएन से पैकेज अपडेट स्वचालित रूप से पकड़ सकें। काश मैं पैकेज डेवलपर्स की सहायता के लिए आसानी से टेस्ट अपस्ट्रीम का एक गुच्छा भेज सकता हूं, लेकिन स्वचालित परीक्षण अब के लिए करेंगे। – Iterator

+1

बस सोच रहा है कि क्या @ इटरेटर या ट्रैविस ने नवीनतम svUnit को आजमाया है। मेरे अनुसार svUnit जेनकिन्स में '' बहुत अच्छा '' एकीकरण प्रदान करता है, इसलिए Dirks को "स्वीकार्य" होने का जवाब देने से मुझे लगता है कि आपने अभी तक इसका अग्रिम नहीं लिया है। – mariotomo

+0

@ मारियोतोमो - अलर्ट के लिए धन्यवाद - मैं निश्चित रूप से इसे देख लूंगा। मेरे पास एक आगामी परियोजना है जिसे इस तरह के परीक्षण का उपयोग करने की आवश्यकता होगी। – Iterator

उत्तर

12

मुझे कोई विशेष समस्या नहीं दिखाई देती है। ये बातें पटकथा हो जाते हैं तो कर सकते थे बस

  • अपने भंडार के शीर्ष करने के बिंदु
  • एन मिनट प्रत्येक चेकइन, स्रोत निर्देशिका से अधिक लूप के बाद
  • प्रत्येक
  • पर R CMD check आह्वान अपने पैकेज को यूनिट टेस्ट का उपयोग करने के लिए सेट किया जाना है, जिसके लिए आप
    • RUnit का उपयोग कर सकते हैं जो प्रारंभिक इकाई टेस्टिन है आर के लिए जी; यह व्यापक रूप से
    • testthat जो हैडली द्वारा एक नए पैकेज है इस्तेमाल किया, और अपने संकुल
    • svUnit फिलिप जो AFAIK के रूप में अन्य दो उतना अधिक पर कभी नहीं पकड़ा द्वारा के कई द्वारा प्रयोग किया जाता है।

वास्तव में संकलित भाषाओं के साथ निरंतर एकीकरण से किसी भी अलग नहीं है यही कारण है कि। आपका प्रश्न वास्तव में आर के भीतर इकाई परीक्षण करने के तरीके के बारे में है, और वह प्रश्न पहले कवर किया गया है।

+3

जो आप लिखते हैं वह काफी सच है- सामान्य-, सवाल हालांकि स्पष्ट रूप से जेनकिन्स/हडसन का उल्लेख करता है, और मेरे ज्ञान के लिए [svUnit] (https://r-forge.r-project.org/scm द्वारा सर्वोत्तम एकीकरण की पेशकश की जाती है) /viewvc.php/pkg/svUnit/R/?root=sciviews)। मेरा दूसरा जवाब देखें। ...आईएमओ, स्क्रिप्ट किए गए यूनिट परीक्षण को निष्पादित करने में सक्षम होने पर अधिक उपयोग नहीं किया जाता है यदि परिणाम चयनित निरंतर एकीकरण टूल के अनुकूल प्रारूप में नहीं हैं। – mariotomo

+0

आरएमडी चेक विफल होने पर जेनकिन्स को बिल्ड दिखाने के लिए कोई सुझाव विफल रहा है? –

+1

निश्चित रूप से, नए [आर-ट्रेविस प्रोजेक्ट जिथब] पर देखें (https://github.com/craigcitro/r-travis) जिसमें 'dump_logs' फ़ंक्शन है। –

1

हडसन/जेनकिंस बैश स्क्रिप्ट चलाने का समर्थन करता है। मुझे लगता है कि आप इसे अपने आर दुनिया के प्रवेश द्वार के रूप में उपयोग कर सकते हैं। आर में, परिणाम रखने का एक आसान तरीका सिंक ("toYourFile.txt") का उपयोग करना है और फिर toYourFile.txt को दिखाने के लिए सीआई के परिणाम प्रदर्शन फ़ंक्शन का उपयोग करना है।

+0

सीआई फ़ाइल को दिखाने के लिए आसान है, आप इसे त्रुटियों की पहचान करने के लिए कैसे प्राप्त करते हैं? –

+0

"त्रुटियों की पहचान कैसे करें?", आपको आउटपुट को ऐसे स्वरूप में होना चाहिए जिसे जेनकींस द्वारा पहचाना जा सके, और यह "जुनीट" प्रोटोकॉल का उपयोग करके, svUnit के साथ आप क्या कर सकते हैं। – mariotomo

4

कार्यालय में हम थोड़ी देर के लिए हडसन/जेनकींस का उपयोग कर रहे हैं। मैंने integration of svUnit to Jenkins का योगदान दिया है, इसलिए मैं दृढ़ता से आपको कुछ और करने की कोशिश करने से पहले svUnit का उपयोग करने की सलाह दूंगा। logging और delftfews या अपने आप zoo और redistribute it on github का पालन करने की कोशिश कर में:

दो पुस्तकालयों मैं बनाए रखने पर एक नजर है।

मैं हाल ही में हाउसकीपिंग नहीं कर रहा हूं इसलिए तीन स्क्रिप्ट (zoo, logging, delftfews) सभी थोड़ा अलग हैं। यदि कोई परीक्षण विफल रहता है तो मेरे चिड़ियाघर संस्करण में से एक बंद हो जाएगा। यह व्यावहारिक है जब आप R CMD check चला रहे हैं, लेकिन निरंतर एकीकरण करते समय शायद एक अच्छा विचार कम हो।

+0

क्या आप स्पष्ट कर सकते हैं कि जेनकिन्स को असफल होने के लिए कैसे ट्रिगर करना है, या svunit कोड में इसका उल्लेख क्यों किया गया है? मुझे svUnit पैकेज प्रलेखन या विग्नेट में कोई प्रासंगिक पाठ नहीं मिला, और यह आपके द्वारा लिखी गई स्क्रिप्ट से मुझे स्पष्ट नहीं है (मैं सीआई के लिए नया हूं) जेनकिंस को पास/विफल करने के लिए क्या ट्रिगर करेगा। क्या यह सिर्फ stderr का जवाब है? –

+0

आप कहते हैं कि आप सीआई के लिए नए हैं, मेरा सुझाव है कि आप इसकी संरचना को समझने के लिए जेनकिन के मैनुअल को पढ़ लें, शायद आप एक काम कर रहे जेनकिंस सर्वर पर एक नज़र रखना चाहते हैं? (उदाहरण: https://csvjdbc.ci.cloudbees.com/job/csvjdbc/) आपके स्रोतों में किए गए किसी भी बदलाव से जेनकिन्स को आपके द्वारा पंजीकृत स्क्रिप्ट को चलाने के लिए ट्रिगर किया जाएगा, और स्क्रिप्ट के सफल समापन पर, यह जेनरेट की गई रिपोर्ट का उपयोग करेगा सफल/असफल/छोड़े गए परीक्षणों को प्रकाशित करने के लिए। – mariotomo

+0

आपने रिपोर्ट के आधार पर सफल/असफल कैसे स्थापित किया? जेनकींस में यह मानक है? – bobK

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