2013-02-17 3 views
5

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

तब से, सभी यूनिट परीक्षणों को "सफल" के रूप में रिपोर्ट किया जाता है - हरी रोशनी, कोई त्रुटि या चेतावनियां नहीं। STFail कॉल शुरू करने के बाद भी, एक्सकोड का दावा है कि "टेस्ट सफल हुआ"। मनमानी परीक्षण विधियों में एक ब्रेकपॉइंट रखने से पता चलता है कि उनमें से कोई भी निष्पादित नहीं किया जाता है।

समस्या तब जारी रहती है जब मैं ओसीएमॉक का उपयोग करके कोड को टिप्पणी करता हूं, जिसमें import निर्देश शामिल हैं।

समस्या गायब हो जाती है - यानी STFails फिर से विफल होने लगती है - जब मैं लिंक चरण से ओसीएमक को हटा देता हूं।

यह another question जैसा है, मैंने पहले पूछा है, लेकिन बिल्कुल वही नहीं: इस मामले में, लॉग नेविगेटर में जानकारी कोई त्रुटि नहीं दिखाती है। इस व्यवहार के कारण क्या हो सकता है? इस मामले का निदान करने के लिए मैं क्या कर सकता हूं?

उत्तर

2

यह पता चला है कि मैं फ्रेमवर्क के लिए missing a Copy Files build phase था, जो स्पष्ट रूप से a variety of issues का कारण बन सकता है।

यह मेरे लिए काम करता है:

  1. इकाई परीक्षण लक्ष्य के निर्माण चरणों के लिए एक फ़ाइलें प्रतिलिपि करें चरण जोड़ें। मैंने रन स्क्रिप्ट चरण से ठीक पहले इसे स्थान दिया, जिससे यह दूसरा-टू-आखिरी वाला बना।
  2. ओसीएमॉक.फ्रेमवर्क आइटम को नेविगेटर से चरण में जोड़ने के लिए खींचें; इसे + बटन का उपयोग करके जोड़ना Xcode 4.6 में काम नहीं करता है (शायद क्योंकि फ्रेमवर्क निर्देशिकाएं हैं?)।
  3. चरण के गंतव्य को "फ्रेमवर्क" पर सेट करें।
  4. इकाई परीक्षण लक्ष्य की बिल्ड सेटिंग्स में, रनपैथ खोज पथ देखें और प्रविष्टि @loader_path/../Frameworks जोड़ें।

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

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

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