इस गाइड में, Firebase Test Lab में टेस्टिंग के लिए XCTest तैयार करने का तरीका बताया गया है.
पहला चरण: अपने प्रोजेक्ट के लिए, Derived Data की जगह कॉन्फ़िगर करना
Xcode, कंपाइल किए गए iOS आर्टफ़ैक्ट को Derived Data डायरेक्ट्री में सेव करता है. इसमें आपके बनाए गए टेस्ट भी शामिल होते हैं. अगर आप चाहें, तो उस डायरेक्ट्री के लिए डिफ़ॉल्ट जगह को सेव रखा जा सकता है. हालांकि, फ़ाइलों के लिए ऐसी जगह चुनना ज़्यादा मददगार होता है जिसे आसानी से ऐक्सेस किया जा सके. खास तौर पर, तब जब आपको Test Lab के साथ अक्सर टेस्ट चलाने हों:
- Xcode में अपना प्रोजेक्ट खोलें.
- macOS के मेन्यू बार में, File > प्रोजेक्ट सेटिंग... को चुनें
- डिराइव्ड डेटा ड्रॉप-डाउन को डिफ़ॉल्ट जगह से बदलकर कस्टम जगह पर सेट करें.
- ड्रॉप-डाउन के नीचे मौजूद फ़ील्ड में, Xcode के लिए कोई ऐसी जगह चुनें जहां वह आपके टेस्ट के नतीजे सेव कर सके. (यह आपका FOLDER_WITH_TEST_OUTPUT है)
दूसरा चरण: जांच के लिए एक सामान्य फ़ाइल बनाना
Test Lab, XCTest फ़्रेमवर्क का इस्तेमाल करके, यूनिट टेस्ट और यूज़र इंटरफ़ेस (यूआई) टेस्ट चलाता है. Test Lab डिवाइसों पर अपने ऐप्लिकेशन के XCTest चलाने के लिए, इसे सामान्य iOS डिवाइस पर टेस्ट करने के लिए बनाएं:
- Xcode फ़ाइल फ़ोल्डर विंडो में सबसे ऊपर मौजूद डिवाइस ड्रॉप-डाउन से, Generic iOS Device चुनें.
- macOS के मेन्यू बार में, Product > Build For > Testing को चुनें.
इसके अलावा, कमांड लाइन से भी XCTest बनाया जा सकता है. टर्मिनल में इस कमांड का इस्तेमाल करें:
प्रोजेक्ट
xcodebuild -project PATH/TO/YOUR_WORKSPACE/PROJECT_NAME.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 सीएलआई में अपना टेस्ट अपलोड करें और चलाएं.