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