XCTest را اجرا کنید

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

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

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

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

مرحله 2 : یک فایل آزمایشی عمومی بسازید

Test Lab تست های واحد و تست های UI را با استفاده از چارچوب XCTest اجرا می کند. برای اجرای XCTests برنامه خود در دستگاه‌های 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

مرحله 3 : آزمون خود را امضا کرده و تأیید کنید

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

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

  3. اگر XCUITest را اجرا می کنید، باید تست و runner را با اجرای codesign --verify --deep --verbose /path/to/MyTest-Runner.app تأیید کنید که در آن "MyTest" نام رانر در داخل پوشه از حالت فشرده خارج شده این برای هر پروژه متفاوت است. خروجی مورد انتظار MyTest-Runner.app: valid on disk .

مرحله 4 : برنامه خود را بسته بندی کنید و برای آپلود آزمایش کنید

  1. پس از اینکه تست شما با موفقیت ساخته شد، آن را برای آپلود در آزمایشگاه تست زیپ کنید:

    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 _iphoneos DEPLOYMENT_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 یا gcloud CLI آپلود و اجرا کنید.