2010-04-01 5 views
7

मेरे पास एक एंड्रॉइड टेस्ट प्रोजेक्ट है जिसे मैं हडसन में जोड़ना चाहता हूं, लेकिन मुझे पाठ के बजाय एक्सएमएल के रूप में परीक्षण परिणामों को आउटपुट करने का कोई तरीका नहीं मिला है। क्या किसी को पता है कि पहले से ऐसा करने का कोई आसान तरीका है?एंड्रॉइड इंस्ट्रूमेंटेशनस्टरनर एचडीएसन इंजेस्टन के लिए एक्सएमएल आउटपुट

-Dan

उत्तर

3

मुझे कुछ समय पहले यह जवाब जोड़ना चाहिए था।

मैं अब एक वर्ष के करीब https://github.com/jsankey/android-junit-report का उपयोग कर रहा हूं और उसने एथेना या मुझे जो कुछ भी मिला है उससे काफी बेहतर काम किया है।

0

एक और फॉलो-अप के रूप में, मैं एक "सभ्य" समाधान के साथ आया हूं। मेरे उपकरण परीक्षणों को चलाते समय, मुझे '-r' विकल्प का उपयोग करना पड़ा (उदाहरण के लिए adb shell am instrument -w -r com.myApp/android.test.InstrumentationTestRunner> test-out.txt) और कनवर्ट करने के लिए अपना खुद का पार्सर लिखें हडसन द्वारा स्वीकार किए गए एक्सएमएल प्रारूप में आउटपुट।

यह सही नहीं है क्योंकि यह समय प्रदान नहीं करता है, न ही यह लॉग आउटपुट संदेश प्रदान करता है, लेकिन कम से कम अब मेरे पास एंड्रॉइड परीक्षणों पर हडसन रिपोर्टिंग है।

4

एफवाईआई, किसी और के लिए जो इस प्रश्न पर ठोकर खाती है। मैंने एक नया टेस्टरुनर बनाया है जिसका उपयोग आप अपने एंड्रॉइड टेस्ट प्रोजेक्ट्स में कर सकते हैं जो आपके परीक्षण परिणामों को हडसन (और शायद किसी अन्य सीआई ऐप) द्वारा पठनीय एक्सएमएल में आउटपुट करेगा। आप यहां इसके बारे में पढ़ सकते हैं: http://droiddudes.com/2010/04/07/athenatestrunner/ या इसे यहां से पकड़ें: http://github.com/dwatling/athena

+0

आपके टूल को खोलने के लिए धन्यवाद। दुर्भाग्य से मुझे इसके साथ कुछ समस्या है। यह एथेना आउटपुट सारांश है: कुल परीक्षण: 22 कुल विफलताओं: 0 (0.0) कुल त्रुटियां: 0 (0.0) कुल समय: 70 सेकंड लेकिन ग्रहण से मुझे मिलता है: 31/31 रन, त्रुटियां: 3, विफलताओं: 4. क्या आप इससे मेरी मदद कर सकते हैं? –

+0

एथेना के उत्पादन में यह परीक्षण सूट की संख्या और प्रत्येक सूट में पाए गए परीक्षणों की संख्या प्रदर्शित करता है।क्या आप यह देखने के लिए जांच सकते हैं कि एक्लिप्स और एथेना में दौड़ के बीच विसंगति कहाँ है? विशेष रूप से, एथेना में कौन से सूट और परीक्षण नहीं चलते हैं, लेकिन ग्रहण में चलाए जाते हैं? – Dan

+0

गिनती विसंगति का हिस्सा एंड्रॉइड टेस्टकेस से "testAndroidTestCaseSetupProperly" पर ग्रहण रिपोर्टिंग (और चल रहा है) के कारण है। एथेना उस परीक्षण को नहीं चलाती है, यह केवल टेस्ट.जेवा फाइलों में पाए गए परीक्षण चलाएगी। यह ऐसा कुछ है जिसे भविष्य में सुधार किया जा सकता है। – Dan

1

हमें हमारी कंपनी में भी इसी तरह की समस्या थी। हमने सभी उपलब्ध ओपन सोर्स समाधानों की जांच की और उनमें से कोई भी वास्तव में सही नहीं था। इसलिए हमने इसके लिए एक समाधान विकसित किया और खुलेआम सोर्स किया। मैं अभी भी एक "परम" नहीं कहता हूं लेकिन एथेना या पायथन रिपोर्टर या किसी भी परीक्षण के बाद से निश्चित रूप से काफी बेहतर है। आप इसे यहाँ पा सकते हैं: http://code.google.com/p/the-missing-android-xml-junit-test-runner/

यह प्रदान करता है: शामिल

  • प्रत्येक पैकेज प्रति अलग एक्सएमएल फ़ाइल
  • एक्सएमएल फाइल डिवाइस पर उत्पन्न कर रहे हैं (परीक्षण के बाद एडीबी pull'ed होने की जरूरत है)
  • परीक्षण के समय पूरी तरह से समर्थित है
  • हम पूर्ण स्टैक ट्रेस विफलता/त्रुटि के मामले में सूचना दी है

जावा स्रोत कोड (एथेना में) का विश्लेषण करने या आउटपुट (पायथन स्क्रिप्ट) का विश्लेषण करने के बजाय, हमने एंड्रॉइड इंस्ट्रूमेंटेशन रनर बढ़ाया। इसलिए हमें परीक्षण चयन, कवरेज सक्षम करने आदि के लिए मानक कमांड लाइन विकल्पों का उपयोग करने के सभी लाभ मिलते हैं - सभी यहां वर्णित हैं: http://developer.android.com/guide/developing/testing/testing_otheride.html#RunTestsCommand

हम एम्मा द्वारा विश्लेषण किए गए कवरेज के साथ मानक परीक्षण नियमों का उपयोग करके कोड को सफलतापूर्वक चलाने में सक्षम थे, जो सभी जेनकींस में अच्छी तरह से रिपोर्ट किए गए थे।

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