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

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

وتتمثّل أهمية إعادة المحاولة التلقائية في تجنُّب إعادة إجراء جميع الاختبارات. إِعَادِةِ التَّشْغِيلْ الاختبارات الفاشلة فقط، ما يؤدي إلى توفير كبير في وقت التنفيذ.

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

تفعيل إعادة المحاولة التلقائية

يتم التحكّم في إعادة المحاولة التلقائية من خلال عنصر RetryDecision الذي يقدّم خيارَين لتفعيل الميزة: max-testcase-run-count و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 وPass إلى RETRY_ANY_FAILURE مجمّع لأنّ إعادة المحاولة نجحت في إزالة الخطأ.

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

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

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

إذا لم تتمكّن من تنفيذ ITestFilterReceiver، يمكنك تنفيذ IAutoRetriableTest للتحكّم يدويًا في كيفية عمل إعادة التشغيل. اختبار الأدوات المُثبّتة مثالاً على تنفيذ هذه الواجهة.