اجرای XCTest

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

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

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

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

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

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

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