2009-12-22 6 views
6

मैंने हाल ही में आईफोन के लिए लिखने वाले ऐप का यूनिट परीक्षण शुरू कर दिया है। मेरे पास अपने स्वयं के परीक्षण बनाने की मूल बातें हैं, भले ही यह थोड़ा उप-इष्टतम लगता है। हालांकि, मुझे gcov का उपयोग कर कोड कवरेज विश्लेषण सेट करने में वास्तविक समस्या है।आईफोन एसडीके में कोड कवरेज विश्लेषण के लिए जीसीओवी कैसे स्थापित करें?

मैंने यहां दिए गए निर्देशों का पालन किया: http://www.cubiclemuses.com/cm/articles/2009/05/14/coverstory-on-the-iphone/, जो अन्य स्थानों पर समान रूप से दोहराया जाता है। मैंने मैक के लिए अपने टूलबॉक्स से Google's AppleScript का उपयोग करने का प्रयास किया है, बस अगर मैं एक्सकोड में कुछ गलत दर्ज कर रहा हूं तो ऐसा करने के लिए।

मैंने बेस प्रोजेक्ट के रूप में ऐप्पल के iPhoneUnitTests sample का उपयोग किया है, और आसानी से Google के ऐप्पलस्क्रिप्ट को चलाने के लिए कैल्कटेस्ट्स लक्ष्य के खिलाफ कोड-कवरेज परीक्षण को सक्षम करने के लिए इसे एक अच्छी तरह से सोर्स, स्वचालित उदाहरण प्राप्त करने के लिए लक्षित नहीं किया है। कोई फर्क नहीं पड़ता परिदृश्य मैं उपयोग करते हैं, अपने खुद के कोड, एप्पल के, मैन्युअल रूप से उचित चर की स्थापना या Google के AppleScript दे मेरे लिए यह करते हैं, सब मैं डिबग कंसोल में इन त्रुटियों को एक बार परीक्षण का चलना समाप्त कर रहे हैं:

profiling:/Users:Cannot create directory 
profiling:/Users/jpo/Downloads/iPhoneUnitTests/build/iPhoneUnitTests.build/Debug-iphoneos/CalcTesting.build/Objects-normal/armv6/CalcViewController.gcda:Skip 
profiling:/Users:Cannot create directory 
profiling:/Users/jpo/Downloads/iPhoneUnitTests/build/iPhoneUnitTests.build/Debug-iphoneos/CalcTesting.build/Objects-normal/armv6/Calculator.gcda:Skip 
profiling:/Users:Cannot create directory 
profiling:/Users/jpo/Downloads/iPhoneUnitTests/build/iPhoneUnitTests.build/Debug-iphoneos/CalcTesting.build/Objects-normal/armv6/CalcAppDelegate.gcda:Skip 
profiling:/Users:Cannot create directory 
profiling:/Users/jpo/Downloads/iPhoneUnitTests/build/iPhoneUnitTests.build/Debug-iphoneos/CalcTesting.build/Objects-normal/armv6/main.gcda:Skip 

जीसीडीए फाइलें नहीं बनाई गई हैं, और इस प्रकार मेरे पास विश्लेषण करने के लिए कुछ भी नहीं है। इसके साथ किसी भी मदद की सराहना की जाएगी।

उत्तर

6

समाधान यह है कि ये मार्गदर्शिकाएं आईफोन सिम्युलेटर में चल रहे कोड को संदर्भित करती हैं। क्योंकि मैं एप्लिकेशन स्तर परीक्षण चला रहा हूं, मैं क्रॉस-प्रोफाइलिंग कर रहा हूं और this information का पालन करने की आवश्यकता है।

फिर मैंने पर्यावरण अनुप्रयोग GCOV_PREFIX को अपने एप्लिकेशन की दस्तावेज़ निर्देशिका में डंप करने के लिए सेट किया है, और फिर मैं दस्तावेज़ निर्देशिका से बाहर .gcda फ़ाइलों को प्राप्त करने के लिए डिवाइस से अपने ऐप के पैकेज को डाउनलोड करने के लिए एक्सकोड में ऑर्गनाइज़र का उपयोग करता हूं। यह बल्कि बोझिल है और शायद ही कभी स्वचालित कवरेज परीक्षण में उधार देता है, लेकिन यह एकमात्र समाधान है जिसे मैं सैंडबॉक्स में चलने की बाधाओं और कक्षाओं का उपयोग करके देख सकता हूं जो केवल डिवाइस (जैसे मीडियाप्लेयर.फ्रेमवर्क) पर परीक्षण के लिए उपलब्ध हैं।

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