Laravel 5: PHPUnit और कोई कोड कवरेज ड्राइवर उपलब्ध नहीं है




code-coverage laravel-5.2 (4)

ऐसा लगता है जैसे आप Xdebug एक्सटेंशन को याद कर रहे हैं। यदि आप होमब्रे का उपयोग कर रहे हैं, तो आप इसे स्थापित कर सकते हैं जैसे:

brew install php70-xdebug

उसके बाद, एक्सटेंशन को सक्षम करने के लिए अपनी php.ini फ़ाइल को संपादित करना न भूलें।

php -i | grep xdebug

जाँचने के बाद कि xdebug सक्षम है, आपको कोड कवरेज करने में सक्षम होना चाहिए

मैं कोड कवरेज रिपोर्ट बनाने के लिए PHPUnit का उपयोग करना चाहूंगा। मैंने वेब पर पाए जाने वाले बहुत सारे इंस्टॉलेशन सेटअप की कोशिश की है। लेकिन कुछ भी हाथ नहीं लगता।

मैं Laravel 5 (> 5.2) और PHPUnit v। 5.0.10 के नवीनतम संस्करण का उपयोग करता हूं। इसके अलावा, मैं मैक ओएस एक्स 10.9.5 पर चलने वाले PHP 7 पर MAMP का उपयोग करता हूं।

जब मैं PHPUnit चलाता हूं जो मेरे लारवेल वितरण में एकीकृत है, तो मुझे निम्नलिखित त्रुटि प्राप्त होती है।

$ vendor/bin/phpunit -v
PHPUnit 5.0.10 by Sebastian Bergmann and contributors.

Runtime:       PHP 7.0.0
Configuration: /Applications/MAMP/htdocs/myProject/phpunit.xml
Error:         No code coverage driver is available`

मेरी संगीतकार फ़ाइल दिखती है:

"require-dev": {
    "fzaninotto/faker": "~1.4",
    "mockery/mockery": "0.9.*",
    "phpunit/phpunit": "5.0.*",
    "phpunit/php-code-coverage": "^3",
    "symfony/css-selector": "2.8.*|3.0.*",
    "symfony/dom-crawler": "2.8.*|3.0.*"
},

मैंने निम्नलिखित कमांड भी आजमाया है:

/Applications/MAMP/bin/php/php7.0.0/bin/phpdbg -qrr ../../../htdocs/myProject/vendor/bin/phpunit -v

यह कोड कवरेज ड्राइवर को अच्छी तरह से सेट करने के लिए लगता है, लेकिन यह एक अपवाद में समाप्त होता है:

$ /Applications/MAMP/bin/php/php7.0.0/bin/phpdbg -qrr ../../../htdocs/myProject/vendor/bin/phpunit -v
PHPUnit 5.0.10 by Sebastian Bergmann and contributors.

Runtime:       PHPDBG 7.0.0
Configuration: /Applications/MAMP/htdocs/myProject/phpunit.xml

[PHP Fatal error:  Uncaught ErrorException: include(/Applications/MAMP/htdocs/myProject/app/Exceptions/Handler.php): failed to open stream: Too many open files in /Applications/MAMP/htdocs/myProject/vendor/composer/ClassLoader.php:412
Stack trace:
...

Phpunit.xml इस प्रकार दिखता है:

<?xml version="1.0" encoding="UTF-8"?>
<phpunit backupGlobals="false"
     backupStaticAttributes="false"
     bootstrap="bootstrap/autoload.php"
     colors="true"
     convertErrorsToExceptions="true"
     convertNoticesToExceptions="true"
     convertWarningsToExceptions="true"
     processIsolation="false"
     stopOnFailure="false">
    <testsuites>
        <testsuite name="Application Test Suite">
            <directory>./tests/</directory>
        </testsuite>
    </testsuites>
    <logging>
      <log type="coverage-html" target="./tests/codeCoverage" charset="UTF-8"/>
    </logging>
    <filter>
        <whitelist>
            <directory suffix=".php">app/</directory>
        </whitelist>
    </filter>
    <php>
        <env name="APP_ENV" value="testing"/>
        <env name="CACHE_DRIVER" value="array"/>
        <env name="SESSION_DRIVER" value="array"/>
        <env name="QUEUE_DRIVER" value="sync"/>
    </php>
</phpunit>

क्या PHPUnit का उपयोग करना संभव है जो कोड कवरेज के साथ लारवेल फ्रेमवर्क के साथ आता है? मुझे इसे कैसे सेट करना चाहिए और इसका उपयोग करना चाहिए?

आपकी सहायता के लिए धन्यवाद।


किसी और के लिए अद्यतन अटक गया;

pecl install xdebug


यदि आप एक योनि बॉक्स के अंदर phpunit चलाते हैं, तो आपको स्थानीय में xdebug स्थापित करने की आवश्यकता नहीं है और होमस्टेड xdebug के साथ स्वचालित रूप से स्थापित होता है। केवल homestead xdebug.ini फ़ाइल को लिंक करना होगा

यहाँ कदम है कि मेरे लिए काम किया है:

cd ~/homestead/REPLACE THIS WITH YOUR HOMESTEAD FOLDER IN LOCAL //
vagrant ssh

sudo ln -s /etc/php/7.2/fpm/conf.d/20-xdebug.ini /etc/php/7.2/cli/conf.d/

उपरोक्त कमांड में यदि आपका रनिंग 7.3 या 7.1 तो इसे अपने php वर्जन के आधार पर बदलें


विंडोज़ उपयोगकर्ताओं के लिए:

1) डाउनलोड xdebug

2) फ़ाइल का नाम बदलकर _php_xdebug.dll_ करें और फ़ाइल को अपने php संस्थापन में एक्सटी फोल्डर में कॉपी करें जैसे C: \ Program Files (x86) \ php \ ext

3) अपनी php.ini फाइल खोलें। मेरे लिए यह C: \ Program Files (x86) \ php \ php.ini पर उपलब्ध है

4) फाइल के नीचे दिए गए कोड को पेस्ट करें।

zend_extension = php_xdebug.dll
xdebug.remote_enable = 1
xdebug.remote_handler = dbgp
xdebug.remote_host = localhost
xdebug.remote_autostart = 1
xdebug.remote_port = 9000
xdebug.show_local_vars = 1




laravel-5.2