XCTest را اجرا کنید

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

مرحله ۱ : مکان داده‌های مشتق‌شده پروژه خود را پیکربندی کنید

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 اجرا می‌کند. برای اجرای XCTestهای برنامه خود روی دستگاه‌های Test Lab ، آن را برای آزمایش روی یک دستگاه iOS عمومی بسازید:

  1. از منوی کشویی دستگاه در بالای پنجره فضای کاری Xcode، گزینه Generic iOS Device را انتخاب کنید.
  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

مرحله ۳ : تست خود را امضا کنید و تأیید کنید

  1. مطمئن شوید که تمام مصنوعات موجود در برنامه و تست امضا شده‌اند. برای مثال، می‌توانید این کار را از طریق Xcode با مشخص کردن تنظیمات امضا مانند ارائه پروفایل و هویت انجام دهید. برای اطلاعات بیشتر، به امضای کد اپل مراجعه کنید.

  2. امضای برنامه را با اجرای codesign --verify --deep --verbose /path/to/MyApp.app تأیید کنید که در آن "MyApp" نام برنامه درون پوشه unzip شده است. این برای هر پروژه متفاوت است. خروجی مورد انتظار MyApp.app: valid on disk است.

  3. اگر در حال اجرای یک XCUITest هستید، باید با اجرای codesign --verify --deep --verbose /path/to/MyTest-Runner.app که در آن "MyTest" نام runner درون پوشه unzip شده است، تست و runner را تأیید کنید. این برای هر پروژه متفاوت است. خروجی مورد انتظار 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. فایندر را باز کنید و به FOLDER_WITH_TEST_OUTPUT بروید.

  2. پوشه‌ای که نام پروژه شما به عنوان پیشوند دارد را باز کنید، سپس به پوشه Build/Products در داخل آن بروید.

  3. پوشه‌های Debug-iphoneos و YOUR_SCHEME _iphoneos DEPLOYMENT_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 آپلود و اجرا کنید.