"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية إعادة محاولة اختبارات JUnit الفاشلة على الفور؟

كيفية إعادة محاولة اختبارات JUnit الفاشلة على الفور؟

تم النشر بتاريخ 2024-11-08
تصفح:550

How to Retry Failed JUnit Tests Instantly?

إعادة محاولة اختبارات JUnit الفاشلة على الفور

قد تكون محاولة التعامل مع حالات فشل الاختبار المتكررة بسبب الإجراءات الحساسة للوقت في مجموعات الاختبار الكبيرة أمرًا محبطًا. والخبر السار هو أنه يمكنك تنفيذ TestRule لإعادة محاولة الاختبارات الفاشلة.

إنشاء RetryRule

تمنحك قاعدة الاختبار التحكم في تنفيذ الاختبار. لإنشاء RetryRule، حدد فئة مثل هذا:

public class RetryTest {
    public class RetryRule implements TestRule {
        ...
        public Statement apply(Statement base, Description description) {
            ...
        }
        ...
    }
}

في طريقة التطبيق، أدخل منطق إعادة المحاولة حول مكالمة الاختبار باستخدام base.evaluate() المقدم:

public Statement apply(Statement, Description) {
    return new Statement() {
        @Override
        public void evaluate() throws Throwable {
            ...
            for (int i = 0; i 

استخدام قاعدة إعادة المحاولة

ضع تعليقًا توضيحيًا على فصل الاختبار الخاص بك باستخدام القاعدة مثل هذا:

...
@Rule
public Retry rule = new Retry(3);
...

خيارات أخرى

Custom TestRunner:

بدلاً من ذلك، يمكنك إنشاء TestRunner مخصص يمتد إلى BlockJUnit4ClassRunner ويتجاوز runChild() للتنفيذ آلية إعادة المحاولة.

ملاحظة:

  • تسمح لك قاعدة إعادة المحاولة بتحديد عدد مرات إعادة المحاولة، بينما لا يسمح لك TestRunner المخصص بذلك.
  • يمكنك أيضًا استخدام التعليقات التوضيحية لتطبيق منطق إعادة المحاولة بشكل انتقائي.
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3