में UI परीक्षणों में अनुप्रयोग मॉड्यूल तक पहुंचने पर लिंकर त्रुटि मेरी परियोजना में कुछ UI परीक्षणों को लागू करने का प्रयास कर रहा हूं। जब तक मैं इसे सरल रखता हूं तब तक सब ठीक हो जाता है: परीक्षण केस रिकॉर्ड करें, कुछ आवेषण जोड़ें, फिर परीक्षण चलाएं। यह ठीक काम करता है, लेकिन जब मैं अपने परीक्षण के अंदर से आवेदन मॉड्यूल तक पहुँचने का प्रयास, लिंकर (नीचे देखें) एक त्रुटि फेंकता है:XCode 7.1
आवेदन स्रोत फ़ाइल में:
func foo() {
assert(true)
}
में यूआई परीक्षण:
import XCTest
@testable import MyApp
func testExample() {
foo()
}
त्रुटि:
Undefined symbols for architecture i386: "MyApp.foo() ->()", referenced from: MyAppUITests.MyAppUITests.testExample (MyAppUITests.MyAppUITests)() ->() in MyAppUITests.o ld: symbol(s) not found for architecture i386 clang: error: linker command failed with exit code 1 (use -v to see invocation)
Undefined symbols for architecture x86_64: "MyApp.foo() ->()", referenced from: MyAppUITests.MyAppUITests.testExample (MyAppUITests.MyAppUITests)() ->() in MyAppUITests.o ld: symbol(s) not found for architecture x86_64
मेरे पास यहां रिपोर्ट की गई एक समान समस्या है: https://forums.developer.apple.com/thread/20609 लेकिन कोई समाधान नहीं। मुझे लगता है कि @testable
बस सही ढंग से काम नहीं करता है। Developer.apple.com पर लड़के ने सेटिंग्स में टेस्ट होस्ट और बंडल लोडर जोड़कर काम करने की कोशिश की, लेकिन मुझे नहीं लगता कि यह सही दृष्टिकोण है। मुझे लगता है कि @testable
सिर्फ सब कुछ काम करना चाहिए, और यह इस समय ऐसा नहीं दिखता है। किसी भी मदद की सराहना की!
आपको अपने यूआईटीस्ट्स से इस तरह के एप्लिकेशन मॉड्यूल तक नहीं पहुंचना चाहिए .... लेकिन यदि आप वास्तव में चाहते हैं (कृपया नहीं) तो आप फ़ाइल इंस्पेक्टर में लक्षित सदस्य जहाज के लिए बॉक्स को चेक कर सकते हैं। मुझे लगता है कि 'testable' UITests में काम नहीं करता है, cuz आपको इस तरह के कच्चे कार्यों तक नहीं पहुंचना चाहिए। – JMFR
@ जेएमएफआर क्या आप विस्तारित कर सकते हैं क्यों नहीं? मेरे लिए यह एक बिल्कुल सही परिदृश्य है, खासकर यदि आपके पास कुछ परीक्षण चर या आपके परीक्षणों में जांच करने के तरीके हैं।लक्ष्य सदस्यता की जांच करने के आपके सुझाव के लिए, यह वही है जो मैं '@ testable' का उपयोग करके टालना चाहता था। – lawicko