این راهنما نحوه آمادهسازی XCTest را برای آزمایش در Firebase Test Lab شرح میدهد.
مرحله ۱: پیکربندی مکان Derived Data پروژه
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 اجرا میکند. برای اجرای XCTests برنامهتان در دستگاههای Test Lab، آن را برای آزمایش در دستگاه iOS عمومی بسازید:
- از منو کرکرهای دستگاه در بالای پنجره فضای کاری Xcode، دستگاه iOS عمومی را انتخاب کنید.
- در نوار منو 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
مرحله ۳: امضا کردن و درستیسنجی کردن آزمایش
مطمئن شوید همه خروجیهای ساختاریافته در برنامه و آزمایش امضا شده باشند. برای مثال، میتوانید این کار را ازطریق Xcode با مشخص کردن تنظیمات امضا مانند نمایه تدارک و هویت انجام دهید. برای اطلاعات بیشتر، به امضای کد Apple مراجعه کنید.
امضای برنامه را با اجرای
codesign --verify --deep --verbose /path/to/MyApp.appدرستیسنجی کنید که در آن «MyApp» نام برنامه در پوشه از حالت فشرده خارجشده است. این مورد برای هر پروژه متفاوت است. خروجی موردانتظارMyApp.app: valid on diskاست.اگر XCUITest اجرا میکنید، باید آزمون و اجراکننده را با اجرای
codesign --verify --deep --verbose /path/to/MyTest-Runner.appدرستیسنجی کنید که در آن «MyTest» نام اجراکننده در پوشه از حالت فشرده خارجشده است. این مورد برای هر پروژه متفاوت است. خروجی موردانتظار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
همچنین میتوانید با فشردهسازی دستی فایلهای آزمون، آزمونتان را بستهبندی کنید:
Finder را باز کنید و به
FOLDER_WITH_TEST_OUTPUTبروید.پوشهای را که نام پروژه شما را بهعنوان پیشوند دارد باز کنید، سپس به پوشه
Build/Productsدر داخل آن بروید.پوشههای
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 بارگذاری و اجرا کنید.