لقد قمت بتجربة هذا محليًا. يبدو أن هناك بضعة عوامل تلعب دورًا:
الكائن siteSettings الذي تشير إليه يتم الحصول عليه بواسطة المُهيئ، ثم يتم استخدامه في استدعاء modifyClass:
تتم إعادة تشغيل المُهيئات لكل اختبار. المشكلة هي أنه ليس لدينا طريقة “لإعادة تعيين” أي استدعاءات modifyClass تم إجراؤها بواسطة الاختبارات السابقة. الحل لدينا هو المعلمة pluginId - هذا يعني أنه يتم استخدام استدعاء modifyClass الأول في مجموعة الاختبارات بأكملها فقط. يتم تجاهل استدعاءات modifyClass من المُهيئات في الاختبارات المستقبلية.
عادةً ما يكون هذا جيدًا - فالتعليمات البرمجية داخل استدعاء modifyClass لا تتغير كثيرًا في كل مرة يتم فيها تشغيل الاختبار. ومع ذلك، في هذه الحالة، أنت تشير إلى مرجع siteSettings من نطاق المُهيئات.
الخلاصة هنا: في الاختبارات، يعني هذا التنفيذ أن modifyClass سيظل عالقًا بإعدادات الموقع من أي اختبار كان الأول في التشغيل.
الحل هو استخدام مرجع siteSettings “في وقت التشغيل” بدلاً من “وقت التهيئة”. يمكننا استخدام المرجع من model:composer نفسه. هذا التعديل يجعل الاختبارات تمر بالنسبة لي: