2013-10-01 5 views
10

काम नहीं कर रहा है मैं cobertura के लिए कोड कवरेज उत्पन्न करने के लिए gcovr का उपयोग कर रहा हूं। सबकुछ xcode 4.6 के साथ ठीक काम कर रहा था। अब मैं xcode5 के लिए अद्यतन और सब कुछ मैं 0% कवरेज है ...gcovr और Xcode 5 के साथ कोड कवरेज

मेरी स्थापना:

  • gcovr 3.0
  • Xcode 5 (एप्पल LLVM 5)
  • 'उत्पन्न टेस्ट कवरेज फ़ाइलें' हाँ
  • 'साधन कार्यक्रम फ्लो' पर सेट है हां में

और आदेश का उपयोग मैं सेट है:

gcovr -r . --object-directory Build/Intermediates/myApp.build/Debug-iphonesimulator/myApp.build/Objects-normal/i386 --exclude '.*Tests.*' --exclude '.*KiwiUnitTest' --exclude '.*main.*' --xml > reports/coverage.xml 

कोई व्यक्ति एक ही समस्या या बेहतर है, तो समाधान है? :)

+3

[एक्सकोड 5 कोड कवरेज (सीआई बिल्ड के लिए सीएमडी-लाइन से) का संभावित डुप्लिकेट] (http://stackoverflow.com/questions/18394655/xcode5-code-coverage-from-cmd-line-for-ci-builds) –

+0

नहीं, यह एक डुप्ली नहीं है। @ गार्डनरबिकफोर्ड द्वारा सुझाव .gcno/.gcda फ़ाइलों को उत्पन्न करने से संबंधित है। यह सवाल gcovr के उपयोग (और खराब होने) से संबंधित है। – Rayfleck

+0

@Rayfleck कृपया इस सवाल फिर से साथ ही साथ जवाब [(cmd लाइन से सीआई बनाता है के लिए) Xcode5 कोड कवरेज] (http://stackoverflow.com/questions/18394655/xcode5-code-coverage-from-cmd- के रूप में पढ़ा लाइन-फॉर-सीआई-बिल्ड) इस कारण Xcovr Xcode 5 में अपग्रेड करने के बाद काम नहीं कर रहा है क्योंकि एक्सकोड 5 कंपाइलर डिस्क पर gcno/gcda फ़ाइलों को फ्लश नहीं करता है। ** इन फ़ाइलों के बिना gcovr कोई कवरेज रिपोर्ट नहीं करेगा। ** –

उत्तर

3

और अब यह फिर से काम करता है ... :)

रूप @kenji कहा, Xcode 5.1 समस्या हल हो। THX btw

यहां मेरे काम के माहौल और एक है जो

  • Xcode 5.1.1 (AppStore से) रुचि रखते हैं
  • gcovr 3 के लिए विन्यास है।

    • 'उत्पन्न टेस्ट कवरेज फ़ाइलें' सेट कर दिया जाता हां में
    • 'साधन कार्यक्रम: 1-प्री-रिलीज़ (easy_install के साथ स्थापित)

    और' बिल्ड सेटिंग 'के तहत अपने प्रोजेक्ट में मैं निम्नलिखित सेट फ्लो 'हाँ पर सेट है

के बाद मैं परीक्षण चलाने, मैं निम्न आदेश निष्पादित करें: (जेनकींस के साथ होता है)

gcovr -r . --object-directory Build/Intermediates/MyProj.build/Debug-iphonesimulator/KiwiUnitTest.build/Objects-normal/i386 --exclude '.*Tests.*' --exclude '.*KiwiUnitTest' --exclude '.*main.*' --xml > reports/coverage.xml 

किया गया। आप एक जवाब के लिए इंतजार और आपकी मदद के लिए आप सभी का शुक्रिया अदा करने के लिए

, दोस्तों।

0

पहले सुनिश्चित करें कि आपके .gcda और .gcno फ़ाइलों को बनाने से बनाने पर!

(जांचें: ~/लाइब्रेरी/डेवलपर/एक्सकोड/व्युत्पन्न डेटा/{आपका प्रोजेक्ट-NAME}/बिल्ड/इंटरमीडिएट्स/{आपका-परियोजना-NAME}। बिल्ड/डीबग-आईफ़ोनसिम्युलेटर/{आपका-परियोजना-NAME} .build/वस्तुओं सामान्य/i386)

अगर वे सफलतापूर्वक आपको बस इतना करना नहीं बनाई गई है निम्नलिखित: () आपके प्रश्न के नीचे टिप्पणी

  1. से सभी फ़ाइलों की प्रतिलिपि की जांच करें फ़ोल्डर i386 (ऊपर वर्णित पूर्ण पथ) में वर्कस्पेस जहां आपकी .h और .m फ़ाइलें हैं।

  2. रन टर्मिनल और अपने कार्यस्थान में आप माता-पिता काम कर निर्देशिका बदलने

    cd [YOUR WORKSPACE PATH] 
    
  3. रन gcovr

    gcovr -r . --xml > reports/coverage.xml 
    

आप जेनकींस (जो मैं मान) का उपयोग कर रहे हैं, तो यह हो जाएगा अपने आगे कदम: Generating gcda files to view the code-coverage from XCTests in IOS with Jenkins

अगर आपको अभी भी प्रश्न हैं तो मुझे बताएं!

+0

ऐसा लगता है कि gcovr (v3.2) का नवीनतम संस्करण किसी भी फाइल को संसाधित नहीं करेगा यदि आप --object-directory को परिभाषित करते हैं। केवल -r पैरामीटर द्वारा परिभाषित पथ पर अपनी .gcno और .gcna फ़ाइलों की प्रतिलिपि बनाकर यह काम करेगा। https://github.com/gcovr/gcovr/issues/61 –

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