phpunit: معالجة الأخطاء المميتة
-
27-09-2019 - |
سؤال
أستخدم phpunit لاختبارات الوحدة ، ولكن عندما أ خطأ مميت يتم تشغيله ، السيناريو يموت وليس لدي إخراج phpunit الصحيح.
أود أن يبقى إخراج phpunit تشكل بشكل صحيح, ، لأنه يتم قراءته بواسطة مكون إضافي لـ Eclipse. في الواقع ، يوقف الخطأ المميت phpunit وفي Eclipse ، لا يمكن للمكون الإضافي تفسير أي شيء (لأن البرنامج النصي phpunit ملك خطأ ، بدلاً من التعامل معه).
شكرًا
المحلول
تحتاج إلى استخدام ميزات عزل عملية Phpunit - ابدأ كل مجموعة اختبار في عملية جديدة.
phpunit --process-isolation ...
هذه هي الطريقة الوحيدة للتأكد من أن الأخطاء المميتة لا تكسر إخراج phpunit الخاص بك.
وقت التنفيذ
تعرض العزلة التي تعرض وقت تشغيل الاختبار ، لأن لكل اختبار واحد, ، يتم بدء مثيل PHP جديد ، يتم تنفيذ bootstrap وما إلى ذلك.
لتعديل هذا الموقف ، يمكنك اختيار تشغيل حالات اختبار كاملة في عملية منفصلة (@runTestsInSeparateProcesses
) ، أو فقط واحدة معروفة بالخروج في بعض الأحيان (@runInSeparateProcess
).
نصائح أخرى
set_error_handler () لن يساعدك هناك. يمكنك اصطياد أخطاء مميتة باستخدام register_shutdown_function ()