美文网首页
phpunit 单元测试之代码覆盖率

phpunit 单元测试之代码覆盖率

作者: iBrand_shjchen | 来源:发表于2018-12-16 21:08 被阅读120次

最近在不断完善项目中的单元测试用例,会用到代码覆盖率分析,本来以为 homestead 应该默认安装了 xdebug ,所以使用 phpunit --coverage-html ./tests/codeCoverage 来生成 html 报告,但是执行后提示如下错误

Error:         No code coverage driver is available

这是因为没有安装或启用 xdebug 导致。

个人环境:

PHP 7.2.0-1+ubuntu16.04.1 + Homestead

install xdebug

$ 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

enable xdebug for php

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

build code coverage report

有两种方法:

1.直接执行 phpunit --coverage-html ./tests/codeCoverage 命令
2.在 phpunit.xml 添加如下代码:

<logging>
   <log type="coverage-html" target="./tests/codeCoverage" charset="UTF-8"/>
</logging>

然后直接执行 phpunit 即可。

完成会在 tests/codeCoverage 目录下生成 html 报告,如下所示:

clipboard.png

通过这样的分析,能够更好的帮助我们完善单元测试,保证代码测试的完整性,也能让我们的代码更加健壮。

讨论交流

qrcode.jpg

相关文章

  • phpunit 单元测试之代码覆盖率

    最近在不断完善项目中的单元测试用例,会用到代码覆盖率分析,本来以为 homestead 应该默认安装了 xdebu...

  • Jacoco统计web接口/功能测试的代码覆盖率

    一、代码覆盖率 通常我们在做单元测试的时候会接触到代码覆盖率的概念,通过在单元测试的过程中收集代码覆盖率去判断测试...

  • 聊聊 Python 代码覆盖率工具 - Coverage

    1. 代码覆盖率 单元测试代码覆盖率作为一种度量方式,可以计算单元测试用例对于被测代码的覆盖程度,即:被执行的代码...

  • 提高单元测试覆盖率的意义与价值

    什么是单元测试覆盖率 ? 单元测试覆盖率是一种软件测试的度量指标,指在所有功能代码中,完成了单元测试的代码所占的比...

  • phpunit

    单元测试 phpUnit phpUnit简介 用于检验php的模块,用来测试代码运行结果和预期是否一致,不一致则报...

  • 代码覆盖率-JaCoCo

    代码覆盖率 在做单元测试时,代码覆盖率常常被拿来作为衡量测试好坏的指标,甚至,用代码覆盖率来考核测试任务完成情况,...

  • 单元测试(三)

    一. 单元测试覆盖率&调试测试代码 1.1 查看单元测试覆盖率打开开源项目SYTimer,如下图所示 开源项目SY...

  • 如何写好单元测试(php程序猿)

    phpunit单元测试(demo):https://github.com/qq1060656096/phpunit...

  • jacoco-java测试覆盖率工具

    1 为什么要关注测试覆盖率 覆盖率是程序编程的最后一环,单元测试验证代码,而覆盖率验证测试用例。 代码覆盖率...

  • 代码测试覆盖率(JaCoCo)

    测试进行代码单元测试时,都应该执着于实现100%的覆盖率。代码覆盖率越高,并不能说明质量就越好,但是代码覆盖率很低...

网友评论

      本文标题:phpunit 单元测试之代码覆盖率

      本文链接:https://www.haomeiwen.com/subject/xttfkqtx.html