इस गाइड में, Firebase Test Lab में जांच करने के लिए XCTest को तैयार करने का तरीका बताया गया है.
पहला चरण: अपने प्रोजेक्ट के डेरिव्ड डेटा की जगह कॉन्फ़िगर करना
Xcode, इकट्ठा किए गए iOS आर्टफ़ैक्ट को Derived Data डायरेक्ट्री में डालता है. इन आर्टफ़ैक्ट में, आपकी बनाई गई सभी टेस्ट भी शामिल होती हैं. अगर आप चाहें, तो उस डायरेक्ट्री के लिए डिफ़ॉल्ट जगह को बनाए रखा जा सकता है. हालांकि, फ़ाइलों के लिए ऐसी जगह चुनना ज़्यादा मददगार होता है जिसे आसानी से ऐक्सेस किया जा सके. ऐसा तब ज़रूरी होता है, जब आपको अक्सर Test Lab के साथ टेस्ट चलाने हैं:
- Xcode में अपना प्रोजेक्ट खोलें.
- macOS मेन्यू बार में, फ़ाइल > प्रोजेक्ट सेटिंग... चुनें
- डेरिव्ड डेटा ड्रॉप-डाउन को डिफ़ॉल्ट जगह से पसंद के मुताबिक जगह पर बदलें.
- ड्रॉप-डाउन के नीचे मौजूद फ़ील्ड में, वह जगह चुनें जहां Xcode आपके टेस्ट का आउटपुट दिखाए. (यह आपका FOLDER_WITH_TEST_OUTPUT है)
दूसरा चरण: सामान्य टेस्ट फ़ाइल बनाना
Test Lab, XCTest फ़्रेमवर्क का इस्तेमाल करके, यूनिट टेस्ट और यूज़र इंटरफ़ेस (यूआई) टेस्ट चलाता है. Test Lab डिवाइसों पर अपने ऐप्लिकेशन के XCTests चलाने के लिए, इसे किसी सामान्य iOS डिवाइस पर जांच के लिए बनाएं:
- Xcode वर्कस्पेस विंडो में सबसे ऊपर मौजूद, डिवाइस ड्रॉप-डाउन से, सामान्य iOS डिवाइस चुनें.
- macOS के मेन्यू बार में, प्रॉडक्ट > इसके लिए बनाएं > टेस्टिंग को चुनें.
इसके अलावा, कमांड-लाइन से भी XCTest बनाया जा सकता है. टर्मिनल में यह कमांड इस्तेमाल करें:
प्रोजेक्ट
xcodebuild -project PATH/TO/YOUR_WORKSPACE/YOUR_PROJECT.xcodeproj \ -scheme YOUR_SCHEME \ -derivedDataPath FOLDER_WITH_TEST_OUTPUT \ -sdk iphoneos build-for-testing
कार्यस्थान
xcodebuild -workspace PATH/TO/YOUR_WORKSPACE.xcworkspace \ -scheme YOUR_SCHEME \ -derivedDataPath FOLDER_WITH_TEST_OUTPUT \ -sdk iphoneos build-for-testing
तीसरा चरण: अपने टेस्ट पर हस्ताक्षर करना और उसकी पुष्टि करना
पक्का करें कि ऐप्लिकेशन और टेस्ट में मौजूद सभी आर्टफ़ैक्ट पर हस्ताक्षर किए गए हों. उदाहरण के लिए, Xcode की मदद से ऐसा किया जा सकता है. इसके लिए, आपको साइन करने की सेटिंग तय करनी होगी. जैसे, प्रोविज़निंग प्रोफ़ाइल और पहचान. ज़्यादा जानकारी के लिए, Apple कोड साइनिंग देखें.
codesign --verify --deep --verbose /path/to/MyApp.app
चलाकर, ऐप्लिकेशन हस्ताक्षर की पुष्टि करें. यहां "MyApp", अनज़िप किए गए फ़ोल्डर में मौजूद ऐप्लिकेशन का नाम है. यह हर प्रोजेक्ट के हिसाब से अलग-अलग होता है. अनुमानित आउटपुटMyApp.app: valid on disk
है.अगर XCUITest चलाया जा रहा है, तो आपको
codesign --verify --deep --verbose /path/to/MyTest-Runner.app
चलाकर, टेस्ट और रनर की पुष्टि करनी होगी. यहां "MyTest", अनज़िप किए गए फ़ोल्डर में रनर का नाम है. यह हर प्रोजेक्ट के लिए अलग-अलग होता है. अनुमानित आउटपुटMyTest-Runner.app: valid on disk
है.
चौथा चरण: अपने ऐप्लिकेशन को पैकेज करना और अपलोड करने के लिए जांच करना
जांच पूरी होने के बाद, उसे Test Lab पर अपलोड करने के लिए ज़िप करें:
cd FOLDER_WITH_TEST_OUTPUT/Build/Products : \ zip -r MyTests.zip Debug-iphoneos YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun
टेस्ट फ़ाइलों को मैन्युअल तरीके से कंप्रेस करके भी, टेस्ट को पैकेज किया जा सकता है:
Finder खोलें और
FOLDER_WITH_TEST_OUTPUT
पर जाएं.वह फ़ोल्डर खोलें जिसका प्रीफ़िक्स आपके प्रोजेक्ट का नाम है. इसके बाद, उसमें मौजूद
Build/Products
फ़ोल्डर पर जाएं.Debug-iphoneos
औरYOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun
फ़ोल्डर चुनें और फिर उन्हें कंप्रेस करें.
पांचवां चरण: (ज़रूरी नहीं) टेस्ट को स्थानीय तौर पर चलाना
Test Lab की मदद से टेस्ट करने से पहले, यूएसबी से कनेक्ट किए गए डिवाइस पर इसे स्थानीय तौर पर चलाया जा सकता है. इससे, इसकी परफ़ॉर्मेंस की जांच की जा सकती है:
xcodebuild test-without-building \ -xctestrun "Derived Data/Build/Products/YOUR_SCHEME.xctestrun" \ -destination id=your-phone-id
अगले चरण
Firebase कंसोल या gcloud सीएलआई में अपना टेस्ट अपलोड और चलाएं.