במדריך הזה מוסבר איך להכין XCTest לבדיקה ב-Firebase Test Lab.
שלב 1: הגדרת המיקום של הנתונים הנגזרים בפרויקט
Xcode ממקם פריטי מידע שנוצרו בתהליך פיתוח (Artifact) של iOS שעברו קומפילציה, כולל כל הבדיקות שאתם יוצרים, בספרייה Derived Data. אפשר להשאיר את מיקום ברירת המחדל של הספרייה, אבל בדרך כלל כדאי לבחור מיקום נגיש יותר לקבצים, במיוחד אם אתם מתכננים להריץ בדיקות עם Test Lab לעיתים קרובות:
- פותחים את הפרויקט ב-Xcode.
- בסרגל התפריטים של macOS, בוחרים באפשרות קובץ > הגדרות הפרויקט...
- משנים את התפריט הנפתח נתונים נגזרים ממיקום ברירת מחדל למיקום מותאם אישית.
- בשדה שמתחת לתפריט הנפתח, בוחרים מיקום שבו Xcode יוציא את תוצאות הבדיקות. (זהו FOLDER_WITH_TEST_OUTPUT שלך)
שלב 2: בניית קובץ בדיקה כללי
Test Lab מריץ בדיקות יחידה ובדיקות ממשק משתמש באמצעות המסגרת XCTest. כדי להריץ את בדיקות ה-XCTest של האפליקציה במכשירי Test Lab, צריך לבנות אותה לבדיקה במכשיר iOS כללי:
- בתפריט הנפתח של המכשיר בחלק העליון של חלון סביבת העבודה של Xcode, בוחרים באפשרות Generic iOS Device (מכשיר iOS כללי).
- בסרגל התפריטים של macOS, בוחרים באפשרות מוצר > Build For > בדיקה.
אפשרות נוספת היא ליצור את 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
שלב 3: חותמים על הבדיקה ומאמתים אותה
מוודאים שכל הארטיפקטים באפליקציה ובבדיקה חתומים. לדוגמה, אפשר לעשות את זה דרך Xcode על ידי ציון הגדרות חתימה כמו פרופיל הקצאת הרשאות וזהות. מידע נוסף זמין במאמר בנושא חתימת קוד של אפל.
מריצים את הפקודה
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 הוא שם קובץ ההרצה בתוך התיקייה שלאחר פתיחת ה-zip. המספר הזה משתנה מפרויקט לפרויקט. הפלט הצפוי הוא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.