XCTest चलाएं

इस गाइड में बताया गया है कि Firebase Test Lab में टेस्टिंग के लिए XCTest कैसे तैयार करें.

पहला चरण: अपने प्रोजेक्ट के डेरिव्ड डेटा की जगह कॉन्फ़िगर करना

Xcode, इकट्ठा किए गए iOS आर्टफ़ैक्ट को Derived Data डायरेक्ट्री में डालता है. इन आर्टफ़ैक्ट में, आपकी बनाई गई सभी टेस्ट भी शामिल होती हैं. अगर आप चाहें, तो उस डायरेक्ट्री के लिए डिफ़ॉल्ट जगह को बनाए रखा जा सकता है. हालांकि, फ़ाइलों के लिए ऐसी जगह चुनना ज़्यादा मददगार होता है जिसे आसानी से ऐक्सेस किया जा सके. ऐसा तब ज़रूरी होता है, जब आपको अक्सर Test Lab के साथ टेस्ट चलाने हैं:

  1. अपने प्रोजेक्ट को Xcode में खोलें.
  2. macOS मेन्यू बार में, फ़ाइल > प्रोजेक्ट सेटिंग... चुनें
  3. डेरिव्ड डेटा ड्रॉप-डाउन को डिफ़ॉल्ट जगह से पसंद के मुताबिक जगह पर बदलें.
  4. ड्रॉप-डाउन के नीचे मौजूद फ़ील्ड में, वह जगह चुनें जहां Xcode आपके टेस्ट का आउटपुट दिखाए. (यह आपका FOLDER_WITH_TEST_OUTPUT है)

दूसरा चरण: सामान्य टेस्ट फ़ाइल बनाना

Test Lab, XCTest फ़्रेमवर्क का इस्तेमाल करके, यूनिट टेस्ट और यूज़र इंटरफ़ेस (यूआई) टेस्ट करता है. Test Lab डिवाइसों पर अपने ऐप्लिकेशन के XCTests चलाने के लिए, इसे किसी सामान्य iOS डिवाइस पर जांच के लिए बनाएं:

  1. अपनी Xcode फ़ाइल फ़ोल्डर की विंडो में सबसे ऊपर मौजूद डिवाइस के ड्रॉप-डाउन से, जेनेरिक iOS डिवाइस चुनें.
  2. 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

तीसरा चरण: अपने टेस्ट पर हस्ताक्षर करना और उसकी पुष्टि करना

  1. पक्का करें कि ऐप्लिकेशन और टेस्ट में मौजूद सभी आर्टफ़ैक्ट पर हस्ताक्षर किए गए हों. उदाहरण के लिए, Xcode की मदद से ऐसा किया जा सकता है. इसके लिए, प्रॉविज़निंग प्रोफ़ाइल और आइडेंटिटी जैसी साइनिंग सेटिंग तय करें. ज़्यादा जानकारी के लिए, Apple कोड साइनिंग देखें.

  2. codesign --verify --deep --verbose /path/to/MyApp.app चलाकर, ऐप्लिकेशन हस्ताक्षर की पुष्टि करें. यहां "MyApp", अनज़िप किए गए फ़ोल्डर में मौजूद ऐप्लिकेशन का नाम है. यह हर प्रोजेक्ट के हिसाब से अलग-अलग होता है. अनुमानित आउटपुट MyApp.app: valid on disk है.

  3. अगर XCUITest चलाया जा रहा है, तो आपको codesign --verify --deep --verbose /path/to/MyTest-Runner.app चलाकर जांच और रनर की पुष्टि करनी होगी. यहां अनज़िप किए गए फ़ोल्डर में मौजूद रनर का नाम "MyTest" है. यह हर प्रोजेक्ट के लिए अलग-अलग होता है. अनुमानित आउटपुट MyTest-Runner.app: valid on disk है.

चौथा चरण: अपने ऐप्लिकेशन को पैकेज करना और अपलोड करने के लिए जांच करना

  1. जांच पूरी होने के बाद, उसे Test Lab पर अपलोड करने के लिए ज़िप करें:

    cd FOLDER_WITH_TEST_OUTPUT/Build/Products : \
    zip -r MyTests.zip Debug-iphoneos YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun
    

टेस्ट फ़ाइलों को मैन्युअल तरीके से कंप्रेस करके भी, टेस्ट को पैकेज किया जा सकता है:

  1. Finder खोलें और FOLDER_WITH_TEST_OUTPUT पर जाएं.

  2. वह फ़ोल्डर खोलें जिसमें आपके प्रोजेक्ट का नाम प्रीफ़िक्स के तौर पर है. इसके बाद, उसमें मौजूद Build/Products फ़ोल्डर पर जाएं.

  3. फ़ोल्डर 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 CLI में अपना टेस्ट अपलोड और चलाएं.