إجراء اختبار XCTest

يوضّح هذا الدليل كيفية تحضير XCTest للاختبار في Firebase Test Lab.

الخطوة 1: ضبط موقع البيانات المستمدة في مشروعك

تضع Xcode مجموعة عناصر iOS في دليل البيانات المشتقة، بما في ذلك أي اختبارات تنشئها. يمكنك الاحتفاظ بالموقع التلقائي لهذا الدليل، إن أردت ذلك، ولكن من المفيد غالبًا اختيار مكان يسهل الوصول إليه للملفات، خاصةً إذا كنت ستجري اختبارات باستخدام Test Lab في كثير من الأحيان:

  1. افتح مشروعك في Xcode.
  2. في شريط قوائم نظام التشغيل macOS، اختَر ملف > إعدادات المشروع...
  3. غيِّر القائمة المنسدلة البيانات المستمدة من الموقع الجغرافي التلقائي إلى الموقع الجغرافي المخصّص.
  4. في الحقل أسفل القائمة المنسدلة، اختَر موقعًا لإخراج Xcode لاختباراتك. (هذا هو FOLDER_WITH_TEST_OUTPUT)

الخطوة 2: إنشاء ملف اختبار عام

Test Lab يُجري اختبارات الوحدة واختبارات واجهة المستخدم باستخدام إطار عمل XCTest. لتشغيل اختبارات XCTests لتطبيقك على أجهزة Test Lab، عليك إنشاؤه لاختباره على جهاز iOS عام:

  1. من القائمة المنسدلة للجهاز في أعلى نافذة مساحة عمل Xcode، اختَر Generic iOS Device (جهاز iOS عام).
  2. في شريط قوائم نظام التشغيل macOS، اختَر المنتج > إنشاء الإصدار المخصّص لأجهزة > الاختبار.

بدلاً من ذلك، يمكنك إنشاء 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.

  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.

الخطوة 4: حزم تطبيقك واختباره قبل تحميله

  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 ثم اضغط على رمز الضغط.

الخطوة 5: (اختياري) تشغيل الاختبار على الجهاز

قبل إجراء الاختبار باستخدام Test Lab، يمكنك إجراؤه على الجهاز باستخدام جهاز متصل عبر USB للتحقّق من جودة سلوكه:

xcodebuild test-without-building \
    -xctestrun "Derived Data/Build/Products/YOUR_SCHEME.xctestrun" \
    -destination id=your-phone-id

الخطوات التالية

حمِّل اختبارك وشغِّله في وحدة تحكّم Firebase أو واجهة سطر أوامر gcloud.