2012-05-16 19 views
6

मेरे पास एक उपयोगकर्ता इंटरफ़ेस प्रोजेक्ट (UI) और कोर लॉजिक प्रोजेक्ट (कोर) के साथ एक एक्सकोड वर्कस्पेस है। मैं यूआई प्रोजेक्ट में ओसीयूनीट यूनिट परीक्षण चाहता हूं, इसलिए मैंने सामान्य रूप से परीक्षण के लिए एक नया लक्ष्य जोड़ा है।एक स्टेटिक लाइब्रेरी के साथ यूनिट परीक्षण

मैं परीक्षण को चलाने में सक्षम हूं जब तक कि मैं मुख्य यूआई लक्ष्य में कक्षाओं के लिए आयात विवरण नहीं डालता जो बदले में कोर प्रोजेक्ट का संदर्भ देता है।

मुझे जो त्रुटि मिलती है वह है "लेक्सिकल या प्रीप्रोसेसर इश्यू 'xxx.h' फ़ाइल नहीं मिली"। जब मैं मुख्य यूआई लक्ष्य सीधे बनाता हूं तो मुझे यह संदेश नहीं मिलता है।

ऐसा लगता है कि मुख्य यूआई लक्ष्य कोर के बारे में जानता है जब इसे बनाया गया है, लेकिन जब इसे परीक्षण लक्ष्य से संदर्भित किया जाता है तो ऐसा लगता है कि कोर के बारे में कुछ भी नहीं है।

मैंने "लाइब्रेरीज़ के साथ लिंक बाइनरी" का उपयोग करके कोर प्रोजेक्ट में संदर्भ जोड़ने का चरण लिया है, सूची में आइटम लाल बनी हुई है। एक सुराग? हो सकता है, लेकिन लिंक सूची में लाल संदर्भ यूआई लक्ष्य को बिल्डिंग और कोर क्लास का उपयोग करने से नहीं रोकता है। मैंने मुख्य लक्ष्य भी परीक्षण लक्ष्य की निर्भरता बना दिया।

उत्तर

9

आप एप्पल नमूना कोड "यूनिट टेस्ट" की जाँच सुनिश्चित करें: https://developer.apple.com/library/ios/#samplecode/UnitTests/Introduction/Intro.html#//apple_ref/doc/uid/DTS40011742

सुनिश्चित करें कि आपके पुस्तकालय परियोजना अपने OCUnit परीक्षण लक्ष्य के निर्माण चरणों में एक dependancy के रूप में सेट किया गया है, और यह एक पुस्तकालय के रूप में लिंक हो।

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

अपने BUILD_PRODUCTS_DIR को जांचें कि यह देखने के लिए कि आपकी लाइब्रेरी के शीर्षलेख वहां दिखाई देते हैं या नहीं। यदि वे नहीं करते हैं, तो पहले यह सुनिश्चित करने के लिए कि आपके द्वारा आवश्यक शीर्षलेख सार्वजनिक अनुभाग में हैं, परियोजना पुस्तकालय लक्ष्य भी काम कर सकता है, लेकिन सार्वजनिक प्रयास करें और देखें कि यह आपकी समस्या हल करता है या नहीं)।

जो आपकी स्थिति में लोगों को लगता है कि सबसे आम समस्याओं को शामिल करता है। संदेह में, यूनिटटेस्ट नमूने में लक्ष्य सेटिंग्स को अपने विरुद्ध जांचें। सौभाग्य!

0

अपने परीक्षण लक्ष्य में, बिल्ड सेटिंग्स पर जाएं। शीर्षलेख खोज पथ पर अपने स्थिर लाइब्रेरी शीर्षकों के लिए पथ जोड़ें।

2

जॉन रीड के उत्तर के अलावा, मुझे निम्नलिखित भी करना था: अपने परीक्षण लक्ष्य में, बिल्ड सेटिंग्स पर जाएं। YES

पर "हमेशा उपयोगकर्ता पथ खोजें" सेट करें