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