این راهنما نحوه آمادهسازی یک XCTest برای آزمایش در Firebase Test Lab را شرح میدهد.
مرحله ۱ : مکان دادههای مشتقشده پروژه خود را پیکربندی کنید
Xcode مصنوعات کامپایلشده iOS، از جمله هر تستی که میسازید، را در یک دایرکتوری Derived Data قرار میدهد. در صورت تمایل میتوانید مکان پیشفرض را برای آن دایرکتوری نگه دارید، اما اغلب انتخاب مکانی با دسترسی آسانتر برای فایلها مفید است، به خصوص اگر قرار است مرتباً تستهایی را با Test Lab اجرا کنید:
- پروژه خود را در Xcode باز کنید.
- در نوار منوی macOS، گزینه File > Project Settings... را انتخاب کنید.
- منوی کشویی Derived Data را از Default Location به Custom Location تغییر دهید.
- در فیلد زیر منوی کشویی، مکانی را برای Xcode انتخاب کنید تا خروجی تستهای شما در آن قرار گیرد. (این مکان FOLDER_WITH_TEST_OUTPUT شماست)
مرحله ۲ : ساخت یک فایل تست عمومی
Test Lab ، تستهای واحد و تستهای رابط کاربری را با استفاده از چارچوب XCTest اجرا میکند. برای اجرای XCTestهای برنامه خود روی دستگاههای Test Lab ، آن را برای آزمایش روی یک دستگاه iOS عمومی بسازید:
- از منوی کشویی دستگاه در بالای پنجره فضای کاری Xcode، گزینه Generic iOS Device را انتخاب کنید.
- در نوار منوی 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
مرحله ۳ : تست خود را امضا کنید و تأیید کنید
مطمئن شوید که تمام مصنوعات موجود در برنامه و تست امضا شدهاند. برای مثال، میتوانید این کار را از طریق Xcode با مشخص کردن تنظیمات امضا مانند ارائه پروفایل و هویت انجام دهید. برای اطلاعات بیشتر، به امضای کد اپل مراجعه کنید.
امضای برنامه را با اجرای
codesign --verify --deep --verbose /path/to/MyApp.appتأیید کنید که در آن "MyApp" نام برنامه درون پوشه unzip شده است. این برای هر پروژه متفاوت است. خروجی مورد انتظارMyApp.app: valid on diskاست.اگر در حال اجرای یک XCUITest هستید، باید با اجرای
codesign --verify --deep --verbose /path/to/MyTest-Runner.appکه در آن "MyTest" نام runner درون پوشه unzip شده است، تست و runner را تأیید کنید. این برای هر پروژه متفاوت است. خروجی مورد انتظارMyTest-Runner.app: valid on diskاست.
مرحله ۴ : برنامه خود را بستهبندی کنید و برای آپلود تست کنید
پس از اینکه تست شما با موفقیت ساخته شد، آن را برای آپلود در Test Lab فشرده کنید:
cd FOLDER_WITH_TEST_OUTPUT/Build/Products : \ zip -r MyTests.zip Debug-iphoneos YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun
همچنین میتوانید با فشردهسازی دستی فایلهای تست، تست خود را بستهبندی کنید:
فایندر را باز کنید و به
FOLDER_WITH_TEST_OUTPUTبروید.پوشهای که نام پروژه شما به عنوان پیشوند دارد را باز کنید، سپس به پوشه
Build/Productsدر داخل آن بروید.پوشههای
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 آپلود و اجرا کنید.