मेरा परीक्षण कोड अंतिम स्थैतिक कक्षाओं से भरा है। और जब हम बेहतर परीक्षणों के लिए इसे पुन: सक्रिय नहीं कर सकते हैं, तो मेरे पास एक मध्यवर्ती समाधान है जो इसकी अपनी प्रक्रिया पर कई छोटे परीक्षण चलाता है। और सब ठीक काम करता है। लेकिन मुझे कोई कवरेज रिपोर्ट नहीं मिलती क्योंकि एक दूसरे को ओवरराइट करता है।पीएचपी इकाई को कई बार कैसे चलाएं और कवरेज रिपोर्ट को कैसे जोड़ें?
मैं वर्तमान में क्लॉवर में रिपोर्ट तैयार कर रहा हूं, लेकिन मैं अन्य रिपोर्टों के लिए बहुत खुला हूं।
मेरी परीक्षण ही काम करते हैं जब PHPUnit के रूप में चलाया जाता है:
/home/y/bin/phpunit --coverage-html clover --coverage-clover clover/report.xml --include-path src/ tests/aTest.php
OK (1 test, 1 assertions)
/home/y/bin/phpunit --coverage-html clover --coverage-clover clover/report.xml --include-path src/ tests/bTest.php
OK (1 test, 1 assertions)
/home/y/bin/phpunit --coverage-html clover --coverage-clover clover/report.xml --include-path src/ tests/cTest.php
OK (1 test, 1 assertions)
लेकिन है कि पिछले से रिपोर्ट wipping प्रत्येक रन का परिणाम देगा। तो मुझे केवल अंतिम के लिए एक रिपोर्ट मिलती है। और अगर मैं उन्हें चलाने की कोशिश करता हूं क्योंकि phpunit पूरी रिपोर्ट उत्पन्न करने की अपेक्षा करता है, तो मुझे विफलता है क्योंकि मेरे सभी वर्गों में अपने स्वयं के स्थिर शामिल हैं।
/home/y/bin/phpunit --coverage-html clover --coverage-clover clover/report.xml --include-path src/ tests/
. (first test pass)
PHP Fatal error: Cannot redeclare class Something
make[1]: *** [phpunit_run] Error 255
(बल्कि इसलिए कर रहे हैं कि वे क्या नहीं मतलब ... ऊपर भी --process-isolation --no-globals-backup
साथ विफल हो जाएगा) - यह अभी तक कैसे php इकाई पर ठीक से प्रक्रिया अलगाव प्राप्त करने पर एक और सवाल नहीं है। मैं इसे कई बार ठीक से चला रहा हूं, मुझे बस एक पूर्ण कवरेज रिपोर्ट चाहिए :)
क्या पहले कोड की तरह परीक्षणों को सही ढंग से चलाने के लिए कोई तरीका है (यानी कई प्रक्रियाओं पर दंडित वैश्विक वर्ग घोषणा स्थान से बचने के लिए) ब्लॉक, लेकिन अभी भी व्यापक कोड कवरेज रिपोर्ट है?
धन्यवाद!