Tôi muốn sử dụng PHPUnit để tạo báo cáo bảo hiểm mã. Tôi đã thử rất nhiều cài đặt cài đặt được tìm thấy trên web. Nhưng dường như không có gì hiệu quả.Laravel 5: PHPUnit và không có trình điều khiển bảo hiểm mã có sẵn
Tôi sử dụng phiên bản mới nhất của Laravel 5 (> 5.2) và PHPUnit v. 5.0.10. Hơn nữa, tôi sử dụng MAMP trên Mac OS X 10.9.5 chạy PHP 7.
Khi tôi chạy PHPUnit được tích hợp trong bản phân phối Laravel của tôi, tôi nhận được lỗi sau.
$ 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`
tập nhà soạn nhạc của tôi trông giống như:
"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.*"
},
Tôi cũng đã thử các lệnh sau:
/Applications/MAMP/bin/php/php7.0.0/bin/phpdbg -qrr ../../../htdocs/myProject/vendor/bin/phpunit -v
Điều này dường như thiết lập trình điều khiển mã số bảo hiểm tốt, nhưng nó kết thúc trong một ngoại lệ:
$ /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 trông giống như sau:
<?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>
Có thể sử dụng PHPUnit đi kèm với khuôn khổ Laravel cùng với mã vùng không? Tôi nên thiết lập và sử dụng nó như thế nào?
Cảm ơn rất nhiều sự giúp đỡ của bạn.
tôi đã sử dụng homebrew để cài đặt Xdebug. Làm thế nào để kích hoạt phần mở rộng trong php.ini? Tôi đã bật dòng sau 'zend_extension = "/ Applications/MAMP/bin/php/php7.0.0/lib/php/extensions/no-debug-non-zts-20151012/xdebug.so" '. Đường dẫn hợp lệ. Tôi biết nó không phải là đường dẫn đến xdebug đã được cài đặt bởi homebrew. Nhưng homebrew đã cài đặt xdebug ở đâu? Tôi không thể tìm thấy nó trên hệ thống của tôi. – LaDude
Sử dụng php -i | grep php.ini để xem tập tin php.ini được tải cấu hình của bạn ở đâu. Sau khi bạn đã tìm thấy nó, chỉ cần thêm vào cuối của tập tin dòng bạn cung cấp ở trên. Trong trường hợp của tôi homebrew cài đặt phần mở rộng trong zend_extension = "/ usr/local/opt/php70-xdebug/xdebug.so" – Nenad
Nó hoạt động ngay bây giờ. Tôi đã sử dụng ứng dụng xdebug đã được cài đặt bởi homebrew. Tôi thực sự đã chỉnh sửa tệp php.ini sai nằm trong '/ Applications/MAMP/conf/php7.0.0'. Sau khi chỉnh sửa tệp php.ini đúng nằm tại '/ Applications/MAMP/bin/php/php7.0.0/conf' và khởi động lại máy chủ web MAMP, phpunit bây giờ chạy phạm vi mã. Cảm ơn bạn đã giúp đỡ. – LaDude