إعادة محاولة الاختبار التلقائي

قد يفشل الاختبار لأي سبب من الأسباب ، وفي بعض الأحيان تكفي إعادة تشغيل الاختبار ببساطة لاجتيازه مرة أخرى (بسبب التقلبات ، مثل المشكلات في البنية التحتية الأساسية). يمكنك تكوين Tradefed لإجراء إعادة المحاولة تلقائيًا.

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

تدعم Tradefed أيضًا إجراء الاختبارات عدة مرات لاكتشاف التقلبات عبر ميزة التكرارات . في هذه الحالة ، سيتم إعادة تشغيل جميع الاختبارات ، وسيفشل الاختبار في حالة فشل أي من التكرارات.

تمكين الميزة

يتم التحكم في إعادة المحاولة التلقائية عبر كائن RetryDecision الذي يوفر خيارين لتمكين الميزة: max-testcase-run-count and retry-strategy .

يدفع max-testcase-run-count عدد المحاولات أو التكرارات التي ستتم تجربتها. يضع حدًا أعلى لتجنب إعادة المحاولة إلى الأبد. تقود retry-strategy قرار كيفية إعادة المحاولة ؛ راجع الأقسام التالية لمزيد من التفاصيل.

التعطيل

استخدم الخيار التالي:

--retry-strategy NO_RETRY

إعادة المحاولة الفاشلة

لإعادة محاولة إخفاق الاختبار ، استخدم الخيارات التالية:

--retry-strategy RETRY_ANY_FAILURE --max-testcase-run-count X

سيؤدي هذا إلى إعادة محاولة الفشل حتى يمر أو حتى الوصول إلى الحد الأقصى لعدد مرات إعادة المحاولة ، أيهما يأتي أولاً.

التكرارات

لإعادة إجراء الاختبارات لعدد من الوقت ، يمكن استخدام الخيارات التالية:

--retry-strategy ITERATIONS --max-testcase-run-count X

كيف تبدو النتائج؟

سيتلقى محررو النتائج بشكل افتراضي النتائج المجمعة لجميع المحاولات.

على سبيل المثال: سيؤدي Fail RETRY_ANY_FAILURE Pass Pass مجمع لأن إعادة المحاولة تمكنت من مسح الفشل.

من الممكن للصحفيين الحصول على النتائج غير المجمعة. للقيام بذلك ، يحتاجون إلى توسيع واجهة ISupportGranularResults التي تعلن عن دعم النتائج الحبيبية (غير المجمعة).

تفاصيل التنفيذ

لتمكين إعادة المحاولة التلقائية لإعادة تشغيل حالات الفشل على مستوى حالة الاختبار ، قم بتنفيذ ITestFilterReceiver .

إذا لم تتمكن من تنفيذ ITestFilterReceiver ، فيمكنك تنفيذ IAutoRetriableTest للتحكم يدويًا في كيفية تشغيل إعادة التشغيل. InstalledInstrumentationsTest هو مثال على تنفيذ تلك الواجهة.