این راهنما نحوه آمادهسازی یک 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 آپلود و اجرا کنید.