Skip to content

المشروع المُنشأ

لتشغيل الاختبارات بشكل انتقائي مع مشروعك الذي تم إنشاؤه، استخدم الأمر tuist test. يقوم الأمر بتجزئة مشروع Xcode الخاص بك بنفس الطريقة التي يقوم بها لتسخين ذاكرة التخزين المؤقت، وعند النجاح، فإنه يستمر في التجزئة لتحديد ما تغير في عمليات التشغيل المستقبلية.

في عمليات التشغيل المستقبلية اختبار تويست يستخدم التجزئة بشفافية لتصفية الاختبارات لتشغيل الاختبارات التي تغيرت فقط منذ آخر عملية تشغيل اختبار ناجحة.

على سبيل المثال، بافتراض الرسم البياني التالي للتبعية:

  • الميزة A لديها اختبارات FeatureATests ، وتعتمد على الأساسية
  • الميزة ب لديه اختبارات FeatureBTests ، ويعتمد على الأساسية
  • يحتوي الموقع الأساسي على اختبارات CoreTests CoreTests

سوف يتصرف اختبار تويست على هذا النحو:

الإجراء الوصف الحالة الداخلية
اختبار تويست استدعاء يقوم بتشغيل الاختبارات في CoreTests و FeatureATests و FeatureBTests يتم الاحتفاظ بتجزئة ميزات الاختبارات و ميزات الاختبارات و الاختبارات الأساسية
الميزة يتم تحديث يقوم المطور بتعديل الكود البرمجي للهدف كما في السابق
اختبار تويست استدعاء يقوم بتشغيل الاختبارات في FeatureATests لأنه تم تغيير التجزئة يتم استمرار التجزئة الجديدة لـ FeatureATests
تم تحديث الموقع الأساسي يقوم المطور بتعديل الكود البرمجي للهدف كما في السابق
اختبار تويست استدعاء يقوم بتشغيل الاختبارات في CoreTests و FeatureATests و FeatureBTests التجزئة الجديدة لـ FeatureATests FeatureBTests ، و CoreTests يتم استمرارها

يتكامل اختبار tuist test مباشرةً مع التخزين المؤقت الثنائي لاستخدام أكبر عدد ممكن من الثنائيات من وحدة التخزين المحلية أو البعيدة لتحسين وقت الإنشاء عند تشغيل مجموعة الاختبارات الخاصة بك. يمكن للجمع بين الاختبار الانتقائي والتخزين المؤقت الثنائي أن يقلل بشكل كبير من الوقت الذي يستغرقه تشغيل الاختبارات على CI الخاص بك.

اختبارات واجهة المستخدم#

يدعم Tuist الاختبار الانتقائي لاختبارات واجهة المستخدم. ومع ذلك، يحتاج تويست إلى معرفة الوجهة مسبقًا. فقط إذا قمت بتحديد الوجهة الوجهة المعلمة ، سيقوم تويست بتشغيل اختبارات واجهة المستخدم بشكل انتقائي، مثل:

bash
tuist test --device 'iPhone 14 Pro'
# or
tuist test -- -destination 'name=iPhone 14 Pro'
# or
tuist test -- -destination 'id=SIMULATOR_ID'