当前位置: 首页 > 后端技术 > PHP

phpunit单元测试代码覆盖率

时间:2023-03-29 23:43:01 PHP

近期团队在不断完善项目中的单元测试用例,将用到代码覆盖率分析。本来以为homestead应该默认安装了xdebug,所以使用phpunit--coverage-html./tests/codeCoverage生成html报告,但是执行后出现如下错误:Error:Nocodecoveragedriverisavailable这是因为xdebug未安装或启用。个人环境:PHP7.2.0-1+ubuntu16.04.1installxdebug$wgethttps://xdebug.org/files/xdebug-2.6.0.tgz$tarxvzfxdebug-2.6.0.tgz$cdxdebug-2.6。0$phpize7.2$./configure--enable-xdebug$make$sudomakeinstallablexdebugforphpfind/usr/-name"xdebug.so"/usr/lib/php/20170718/xdebug.so//刚刚安装的xdebug2.6.0版本/usr/lib/php/20131226/xdebug.so/usr/lib/php/20160303/xdebug.so/usr/lib/php/20151012/xdebug.sovi/etc/php/7.2/cli/php.ini在php.ini末尾添加如下代码zend_extension="/usr/lib/php/20170718/xdebug.so"xdebug.remote_enable=1xdebug.remote_connect_back=1xdebug.remote_port=9000xdebug.max_nesting_level=500构建代码覆盖率报告有两种方法:1、直接执行phpunit--coverage-html./tests/codeCoverage命令2、在phpunit.xml中添加如下代码:然后直接执行phpunit。完成后会在tests/codeCoverage目录下生成一个html报告,如下图:通过这样的分析,可以更好的帮助我们改进单元测试,保证代码测试的完整性,让我们的代码更加健壮。讨论