اجرای XCTest

این راهنما نحوه آماده‌سازی XCTest را برای آزمایش در Firebase Test Lab شرح می‌دهد.

مرحله ۱: پیکربندی مکان Derived Data پروژه

Xcode مصنوعات iOS کامپایل‌شده، ازجمله هر آزمایشی را که می‌سازید، در دایرکتوری Derived Data قرار می‌دهد. درصورت تمایل، می‌توانید مکان پیش‌فرض را برای آن دایرکتوری حفظ کنید، اما اغلب مفید است که مکان قابل‌دسترس‌تری را برای فایل‌ها انتخاب کنید، به‌ویژه اگر قرار است آزمایش‌ها را با Test Lab به‌طور مکرر اجرا کنید:

  1. پروژه‌تان را در Xcode باز کنید.
  2. در نوار منو macOS، File (فایل) > Project Settings (تنظیمات پروژه)... را انتخاب کنید
  3. منو کرکره‌ای Derived Data (داده‌های مشتق‌شده) را از Default Location (مکان پیش‌فرض) به Custom Location (مکان سفارشی) تغییر دهید.
  4. در فیلد زیر منو کرکره‌ای، مکانی را برای Xcode انتخاب کنید تا آزمایش‌هایتان را به آنجا ارسال کند. (این FOLDER_WITH_TEST_OUTPUT شما است)

مرحله ۲: ساختن فایل آزمایشی عمومی

Test Lab آزمایش‌های واحد و آزمایش‌های واسط کاربر را بااستفاده از چارچوب XCTest اجرا می‌کند. برای اجرای XCTests برنامه‌تان در دستگاه‌های Test Lab، آن را برای آزمایش در دستگاه iOS عمومی بسازید:

  1. از منو کرکره‌ای دستگاه در بالای پنجره فضای کاری Xcode، دستگاه iOS عمومی را انتخاب کنید.
  2. در نوار منو macOS، محصول > ساختن برای > آزمایش را انتخاب کنید.

به‌عنوان راهکاری جایگزین، می‌توانید 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

مرحله ۳: امضا کردن و درستی‌سنجی کردن آزمایش

  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، می‌توانید آن را به‌صورت محلی با دستگاه متصل‌شده با USB اجرا کنید تا کیفیت رفتار آن را بررسی کنید:

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

مراحل بعدی

آزمایش را در کنسول Firebase یا gcloud CLI بارگذاری و اجرا کنید.