最近在不断完善项目中的单元测试用例,会用到代码覆盖率分析,原本觉得 homestead 应该默认安装了 xdebug ,因此使用 phpunit --coverage-html ./tests/codeCoverage
来生成 html 报告,可是执行后提示以下错误php
Error: No code coverage driver is available
这是由于没有安装或启用 xdebug 致使。html
我的环境:ubuntu
PHP 7.2.0-1+ubuntu16.04.1 + Homestead单元测试
$ wget https://xdebug.org/files/xdebug-2.6.0.tgz $ tar xvzf xdebug-2.6.0.tgz $ cd xdebug-2.6.0 $ phpize7.2 $ ./configure --enable-xdebug $ make $ sudo make install
find /usr/ -name "xdebug.so"
/usr/lib/php/20170718/xdebug.so //刚刚安装的 xdebug 2.6.0 版本 /usr/lib/php/20131226/xdebug.so /usr/lib/php/20160303/xdebug.so /usr/lib/php/20151012/xdebug.so
vi /etc/php/7.2/cli/php.ini
添加以下代码到 php.ini
结尾处测试
zend_extension="/usr/lib/php/20170718/xdebug.so" xdebug.remote_enable = 1 xdebug.remote_connect_back = 1 xdebug.remote_port = 9000 xdebug.max_nesting_level = 500
有两种方法:ui
1.直接执行 phpunit --coverage-html ./tests/codeCoverage
命令 2.在 phpunit.xml
添加以下代码:debug
<logging> <log type="coverage-html" target="./tests/codeCoverage" charset="UTF-8"/> </logging>
而后直接执行 phpunit
便可。code
完成会在 tests/codeCoverage
目录下生成 html 报告,以下所示:xml
经过这样的分析,可以更好的帮助咱们完善单元测试,保证代码测试的完整性,也能让咱们的代码更加健壮。htm