2015-06-11 6 views
101

का उपयोग करते समय मैं अपने वर्गों को परीक्षण लक्ष्य में बेनकाब करने के लिए स्विफ्ट 2 की नई @testable घोषणा का उपयोग करने की कोशिश कर रहा हूं। हालांकि मैं इस संकलक त्रुटि हो रही है:'मॉड्यूल को परीक्षण के लिए संकलित नहीं किया गया था' @testable

enter image description here

Intervals मॉड्यूल है कि कक्षाओं मैं बेनकाब करने के लिए कोशिश कर रहा हूँ होता है। मैं इस त्रुटि से कैसे छुटकारा पा सकता हूं?

उत्तर

165

अपने मुख्य लक्ष्य में आपको Enable Testability बिल्ड विकल्प को हां में सेट करने की आवश्यकता है।

नीचे @earnshavian द्वारा टिप्पणी के अनुसार, इसका उपयोग केवल सेब रिलीज नोट्स के अनुसार डीबग बिल्ड पर किया जाना चाहिए: "सक्षम टेस्टेबिलिटी बिल्ड सेटिंग केवल आपके डीबग कॉन्फ़िगरेशन में उपयोग की जानी चाहिए, क्योंकि यह अनुकूलन को प्रतिबंधित नहीं करता है जो कि इस पर निर्भर नहीं है ऐप या ढांचे से आंतरिक प्रतीकों का निर्यात "https://developer.apple.com/library/content/releasenotes/DeveloperTools/RN-Xcode/Chapters/Introduction.html#//apple_ref/doc/uid/TP40001051-CH1-SW326

+0

हाय, मुझे एक ही त्रुटि मिल रही है लेकिन सक्षम टेस्टेबिलिटी विकल्प नहीं देख रहा है और xcode 7 का उपयोग कर रहा हूं। कोई विचार मुझे क्या करना चाहिए? – user1601259

+2

@ user1601259 - आप शीर्ष स्तर प्रोजेक्ट का चयन करके, बिल्ड सेटिंग्स पर जाकर और बिल्ड विकल्प शीर्षक के अंतर्गत देखकर विकल्प पा सकते हैं। – hgwhittle

+0

@hgwhittle - जब मैं शीर्ष स्तरीय प्रोजेक्ट का चयन करता हूं, तो मैं बिल्ड विकल्पों में देखता हूं "डीबग सूचना प्रारूप" और "उत्पाद निर्माण मान्य करें"। जब मैं बिल्ड विकल्पों में लक्ष्य का चयन करता हूं तो मुझे लगता है कि "एम्बेडेड सामग्री में स्विफ्ट कोड है।" बस। जब मैं बिल्ड सेटिंग्स में खोज करता हूं तो मुझे यह नहीं मिल रहा है। क्या यह xcode 7 की वजह से है? – user1601259

7

समाधान बहुत सरल लोग हैं। सुनिश्चित करें कि आप अपनी ऐप योजना के तहत अपने चेकबॉक्स को सही तरीके से सेट करते हैं। आपको UNCHECK पुरालेख निर्माण के लिए अपने परीक्षण लक्ष्य होना चाहिए।

enter image description here

+1

अधिक जानकारी के लिए यहां देखें: https://developer.apple.com/library/mac/technotes/tn2215/_index.html –

-1

यह अपनी परियोजनाओं Xcode 8 से पहले में पाए जाते हैं नहीं था, लेकिन बाद मैं Xcode 8 करने के लिए उन्नत, यह मेरे उलझन बना दिया।

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

enter image description here और अब त्रुटि समाप्त हो गई है।

3

ऐसा शायद इसलिए है क्योंकि आपका मुख्य लक्ष्य Enable TestabilityNO पर सेट है। आपको इसे डीबग स्कीम में YES पर सेट करना चाहिए (जिसका उपयोग आपके परीक्षण चलाने के लिए किया जाता है)।

यदि आप कार्थेज का उपयोग करते हैं, तो यह समस्या @testable के साथ ढांचे को आयात करके हो सकती है, क्योंकि उन्हें रिलीज योजना के साथ बनाया गया है।

अधिकांश बार उस उपसर्ग के साथ ढांचे को आयात करने के लिए यह खराब प्रथा है, इसलिए आप इससे बच सकते हैं। यदि आप नहीं कर सकते हैं, तो आपको ढांचे की रिलीज योजना में Enable Testability होना चाहिए।https://developer.apple.com/library/content/releasenotes/DeveloperTools/RN-Xcode/Chapters/Introduction.html#//apple_ref/doc/uid/TP40001051-CH1-SW326

1

आप में से जो लोग केवल चल Xcode प्रोफाइलर पर इस सामना कर रहे हैं के लिए: एक के लिए अपनी योजना के प्रबंधन में स्विच प्रोफ़ाइल निर्माण विन्यास कि testability में सक्षम बनाया है - और कि अधिकांश मामलों में डिबग होगा:

enter image description here

2

मेरे मामले में मैं एक निर्भरता प्रबंधक के रूप में परीक्षण (Test कहा जाता है) और यह भी cocoapods के लिए एक कस्टम निर्माण विन्यास इस्तेमाल किया

मैं अपनेके अंत में निम्नलिखित लाइनों को जोड़ने के लिए किया थाtestability सक्षम करने के लिए

post_install do |installer| 
    installer.pods_project.targets.each do |target| 
     target.build_configurations.each do |config| 
      if config.name == 'Test' 
       config.build_settings['ENABLE_TESTABILITY'] = 'YES' 
      end 
     end 
    end 
end 

डिफ़ॉल्ट रूप से cocoapodsENABLE_TESTABILITY केवल Debug के लिए YES करने के लिए सेट बनाता है अगर आप फली का उपयोग कर रहे/कार्थेज

0

समाधान ऊपर ठीक है। लेकिन यदि आप आईओएस से ढांचे का उपयोग कर रहे हैं तो 'उदा। संपर्क ', आपको अपने मुख्य प्रोजेक्ट के लक्ष्य के' लाइब्रेरी खोज पथ 'में इन ढांचे के लिए पथ जोड़ने की आवश्यकता है। enter image description here

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

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