سؤال

أنا أستخدم حاليًا Zend Framework بالتزامن مع Phpunit لإجراء اختبار الوحدة على التطبيق. عندما يقوم Hudson بتنفيذ أمر Phpunit Shell ، يتم الوصول إلى الحد الأقصى لذاكرة PHP في وقت ما أثناء توليد تغطية الكود. لدي حاليا ما مجموعه 41 اختبار مع 334 تأكيد.

لقد نجحت في التخلص من هذا الخطأ عن طريق رفع إعداد Memory_Limit إلى 768 مترًا باستخدام -d memory_limit=768M تحول؛ ومع ذلك ، أشعر بالقلق من أن التعقيد يزداد مع إجمالي عدد الاختبارات/التأكيدات ، لن يكون لدي ذاكرة كافية لإنشاء HTML لإحصائيات تغطية الكود.

OS: Centos 5.5
لوحة التحكم: WHM/cpanel
خادم CI: هدسون

/usr/local/bin/phpunit 
  --verbose  
  -d memory_limit=512M  
  --log-junit ../../build/logs/phpunit.xml   
  --coverage-clover ../../build/logs/coverage/clover.xml   
  --coverage-html ../../build/logs/coverage-html/  

خطأ فادح: حجم الذاكرة المسموح به من 536870912 بايت استنفدت

قبل ارتكاب تغييراتي والترك هدسون يتعامل مع الباقي ، أستخدم Windows 7 للتطوير. لم يتجاوز استخدام الذاكرة 340 ميغابايت أبدًا أثناء تشغيل نفس الأمر داخل W7.

هل كانت مفيدة؟

المحلول

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

نصائح أخرى

هل تم تمكين توصيف XDebug ، إذا كان الأمر كذلك ، فحاول تعطيله. لقد واجهت هذه المشكلة من قبل ، وقد وصل الأمر إلى امتدادات في PHP (وتحديداً ملف تعريف XDEBUG و/أو عارض وريث مائل))

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top