הרצת XCTest

במדריך הזה נסביר איך להכין XCTest לבדיקה Firebase Test Lab

שלב 1: מגדירים את מיקום הנתונים הנגזרים של הפרויקט

ב-Xcode אספנו ארטיפקטים של iOS, כולל בדיקות שאתם מפתחים, ספריית נתונים. אפשר לשמור את מיקום ברירת המחדל עבור הספרייה הזו, אם רוצים, אבל בדרך כלל כדאי לבחור מקום נגיש יותר של הקבצים, במיוחד אם אתם מתכננים להריץ בדיקות עם Test Lab לעיתים קרובות:

  1. פותחים פרויקט ב-Xcode.
  2. בסרגל התפריטים של macOS, בוחרים File > הגדרות פרויקט...
  3. משנים את התפריט הנפתח נתונים נגזרים מ- מיקום ברירת המחדל הוא מיקום מותאם אישית.
  4. בשדה שמתחת לתפריט הנפתח, בוחרים מיקום לפלט של Xcode לבצע בהם את הבדיקות. (זהו ה-FOLDER_WITH_TEST_OUTPUT שלך)

שלב 2: יצירה של קובץ בדיקה גנרי

Test Lab מריץ בדיקות יחידה ובדיקות ממשק משתמש באמצעות מסגרת XCTest. כדי להריץ את בדיקות XCTest של האפליקציה ב-Test Lab מכשירים, צריך ליצור אותה לבדיקה מכשיר iOS גנרי:

  1. בתפריט הנפתח של המכשיר בחלק העליון של החלון של סביבת העבודה ב-Xcode, בוחרים באפשרות מכשיר iOS כללי.
  2. בסרגל התפריטים של 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

שלב 3: חותמים על הבדיקה ומאמתים

  1. מוודאים שכל פריטי המידע שנוצרו בתהליך הפיתוח (Artifact) באפליקציה ובבדיקה חתומים. לדוגמה, אפשר: לעשות זאת דרך 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" הוא שם קובץ ה-ZIP בתוך התיקייה שחילצתם. הנתון הזה משתנה עבור בכל פרויקט. הפלט הצפוי הוא MyTest-Runner.app: valid on disk.

שלב 4: אריזה של האפליקציה ובדיקה לקראת העלאה

  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 ואז לדחוס אותם.

שלב 5: (אופציונלי) מריצים את הבדיקה באופן מקומי

לפני שמריצים את הבדיקה באמצעות Test Lab, אפשר להריץ אותה באופן מקומי באמצעות מכשיר שמחובר ל-USB כדי לבדוק את ההתנהגות שלה:

xcodebuild test-without-building \
    -xctestrun "Derived Data/Build/Products/YOUR_SCHEME.xctestrun" \
    -destination id=your-phone-id

השלבים הבאים

מעלים את הבדיקה ומריצים אותה במסוף Firebase או באמצעות ה-CLI של gcloud.