/ / एक मिश्रित भाषा एक्सकोड परियोजना में स्विफ्ट यूनिट टेस्ट जोड़ना - उद्देश्य-सी, एक्सकोड, स्विफ्ट, यूनिट-परीक्षण

एक मिश्रित भाषा एक्सकोड परियोजना में स्विफ्ट यूनिट टेस्ट जोड़ना - उद्देश्य-सी, एक्सकोड, स्विफ्ट, यूनिट-परीक्षण

पहले उद्देश्य-सी केवल प्रोजेक्ट में जोड़े गए स्विफ्ट वर्गों का परीक्षण करने के लिए आप यूनिट परीक्षण कैसे सेट अप करते हैं?

मैंने अपनी परियोजना में स्विफ्ट कक्षाएं जोड़ दी हैं और अन्य स्विफ्ट और ऑब्जेक्टिव-सी फाइलों में उनके साथ काम करने में सक्षम हूं, हालांकि, मैं अपने परीक्षण वर्गों से उन्हें एक्सेस करने में असमर्थ हूं।

आयात कथन मुझे विश्वास है कि सही है @testable import MyAppModuleName जो कि एक्सकोड के टेम्पलेट्स में उदाहरण परीक्षण वर्ग में जोड़ा गया है। उस पंक्ति द्वारा उत्पादित त्रुटि है Cannot import module being compiled। यह त्रुटि स्विफ्ट 2 का उपयोग कर एक्सकोड 7 में है।

उत्तर:

जवाब के लिए 5 № 1

मेरे पास उद्देश्य-सी और स्विफ्ट कोड बेस के मिश्रण के साथ वर्कस्पेस पर काम करने वाले समान मुद्दे थे और मेरी स्विफ्ट फ़ाइलों के लिए यूनिट टेस्ट केस लिखना चाहते थे। इस मुद्दे को हल करने के लिए मैंने जो कदम उठाए हैं, नीचे दिए गए हैं।

  • मैंने प्रोजेक्ट की बिल्ड सेटिंग्स में "YES" को "टेस्टेबिलिटी सक्षम करें" सेट किया है
  • मैंने अपने प्रोजेक्ट की बिल्ड सेटिंग्स में "हाँ मॉड्यूल" को "हाँ" पर भी सेट किया है।
  • मेरे प्रोजेक्ट के भीतर नियमित। स्विफ्ट फ़ाइल के लिए, कहें MyApp, मैं था मेरे पास टेस्ट केस लिखने जा रहे हैं, मेरे पास है दोनों मुख्य "MyApp" और यह "MyAppUnitTests"लक्ष्य सदस्यता के तहत लक्षित लक्ष्य।

मैंने फिर अपनी यूनिट टेस्ट फ़ाइल का चयन किया, "@testable आयात MyApp"शीर्ष पर, नीचे"आयात XCTest", तथा केवल चेक किया "MyAppUnitTests"लक्ष्य सदस्यता के तहत। साफ, निर्मित और भागो और सब कुछ आकर्षण की तरह काम किया। उम्मीद है की यह मदद करेगा।


जवाब के लिए 3 № 2

द्वारा प्रदान किया गया उत्तर https://twitter.com/UINT_MIN

मेरे मामले में दोनों लक्ष्य (एप्लिकेशन और परीक्षण) के पास बिल्ड सेटिंग्स में समान मॉड्यूल नाम था। परीक्षण लक्ष्य के मॉड्यूल नाम को बदलने से समस्या हल हो गई।


उत्तर № 3 के लिए 1

@testable import जब आप अपने मुख्य लक्ष्य से अपने परीक्षण लक्ष्य से कोड आयात करने का प्रयास कर रहे हैं। आपका परीक्षण कोड आपके ऐप लक्ष्य का सदस्य नहीं होना चाहिए - आपके पास एक अलग परीक्षण लक्ष्य होना चाहिए। देखें यूनिट टेस्ट का उपयोग करना ब्योरा हेतु।