במדריך הזה מוסבר איך להכין בדיקת XCTest לבדיקה ב-Firebase Test Lab.
שלב 1: מגדירים את מיקום הנתונים הנגזרים של הפרויקט
Xcode ממקם פריטי מידע שנוצרו בתהליך פיתוח התוכנה (artifacts) של iOS שעברו הידור, כולל בדיקות שאתם יוצרים, בספריית Derived Data. אפשר להשאיר את מיקום ברירת המחדל של הספרייה הזו, אבל בדרך כלל כדאי לבחור מקום נגיש יותר לקבצים, במיוחד אם אתם מתכננים להריץ בדיקות עם Test Lab לעיתים קרובות:
- פותחים את הפרויקט ב-Xcode.
- בסרגל התפריטים של macOS, בוחרים באפשרות File > הגדרות הפרויקט....
- בתפריט הנפתח Derived Data, משנים את הערך מ-מיקום ברירת המחדל ל-Custom Location.
- בשדה שמתחת לתפריט הנפתח, בוחרים מיקום שבו Xcode יציג את הבדיקות. (זהו ה-FOLDER_WITH_TEST_OUTPUT שלך)
שלב 2: יוצרים קובץ בדיקה כללי
Test Lab מריץ בדיקות יחידה ובדיקות של ממשק המשתמש באמצעות מסגרת XCTest. כדי להריץ את בדיקות ה-XCTest של האפליקציה במכשירי Test Lab, צריך ליצור גרסת build לבדיקה במכשיר iOS גנרי:
- בתפריט הנפתח של מכשיר ה-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
שלב 3: חתימה על הבדיקה ואימות
מוודאים שכל פריטי המידע באפליקציה ובבדיקה חתומים. לדוגמה, אפשר לעשות את זה דרך Xcode על ידי ציון הגדרות חתימה כמו פרופיל הקצאה וזהות. מידע נוסף זמין במאמר חתימת קוד של אפל.
מאמתים את חתימת האפליקציה על ידי הפעלת הפקודה
codesign --verify --deep --verbose /path/to/MyApp.app, כאשר MyApp הוא שם האפליקציה בתוך התיקייה שחולצה. התשובה משתנה בהתאם לפרויקט. הפלט הצפוי הואMyApp.app: valid on disk.אם מריצים XCUITest, צריך לאמת את הבדיקה ואת ה-runner על ידי הרצת הפקודה
codesign --verify --deep --verbose /path/to/MyTest-Runner.app, כאשר "MyTest" הוא השם של ה-runner בתוך התיקייה שחולצה. הזמן משתנה בהתאם לפרויקט. הפלט הצפוי הואMyTest-Runner.app: valid on disk.
שלב 4: אורזים את האפליקציה ובודקים את ההעלאה
אחרי שהבדיקה נוצרת, מכווצים אותה לקובץ ZIP כדי להעלות אותה אל 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ודוחסים אותן.
שלב 5: (אופציונלי) מריצים את הבדיקה באופן מקומי
לפני שמריצים את הבדיקה באמצעות Test Lab, אפשר להריץ אותה באופן מקומי במכשיר שמחובר באמצעות USB כדי לבדוק את ההתנהגות שלה:
xcodebuild test-without-building \
-xctestrun "Derived Data/Build/Products/YOUR_SCHEME.xctestrun" \
-destination id=your-phone-idהשלבים הבאים
מעלים את הבדיקה ומריצים אותה במסוף Firebase או ב-ה-CLI של gcloud.