资讯专栏INFORMATION COLUMN

phpunit 单元测试之代码覆盖率

blankyao / 948人阅读

摘要:最近团队在不断完善项目中的单元测试用例,会用到代码覆盖率分析,本来以为应该默认安装了,所以使用来生成报告,但是执行后提示如下错误这是因为没有安装或启用导致。

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

Error:         No code coverage driver is available

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

个人环境:

PHP 7.2.0-1+ubuntu16.04.1

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 添加如下代码:


   

然后直接执行 phpunit 即可。

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

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

讨论交流

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/28218.html

相关文章

  • phpunit使用

    摘要:单元测试是一个为代码编写测试用例并自动运行这些测试的框架。测试驱动的开发是一种单元测试方法,其思想是应该首先编写测试程序,并验证这些测试可以发现错误,然后才开始编写需要通过这些测试的代码。 phpunit使用 标签(空格分隔): php 现在是凌晨 3 点。我们怎样才能知道自己的代码依然在工作呢?Web 应用程序是 24x7 不间断运行的,因此我的程序是否还在运行这个问题会在晚上一直...

    ZweiZhao 评论0 收藏0
  • PHP单元测试框架PHPUnit的使用

    摘要:以前在学习开发时有专门写过的单元测试的文章,开发学习之单元测试,今天再总结下怎么在中使用单元测试。是一个用编程语言开发的开源软件,是一个单元测试框架。单元测试框架经常会包含每个测试的报告,以及给出你已经覆盖到的代码覆盖率。 以前在学习IOS开发时有专门写过Objective-C的单元测试的文章,IOS开发学习之单元测试,今天再总结下怎么在PHP中使用单元测试。 一、前言 在这篇文章中,...

    Bryan 评论0 收藏0
  • 【持续集成你的项目】为你的项目创建自动化测试代码盖率测试

    摘要:单元测试中,代码覆盖率经常被用来衡量测试好坏的指标。执行的结果和导出的结果都可以在的下看到接下来就是把这些文件到上,就会自动构建,然后开始单元测试,并把测试结果中的代码覆盖率发送到。 本文以PHP项目作为例子所需要拥有(准备)的: Github账号 一个项目 看着篇幅挺大的,难免有什么遗漏,如果文中有错误的地方,还请各位斧正!谢谢。因为本来篇幅就大,所以就没配图了,如果有很多人反...

    Jeff 评论0 收藏0
  • PHP 单元测试

    摘要:上面的规定是必须遵守的,如果代码没有遵守规定不会把他当做单元测试代码。每个单元测试类以被测试的类名开头。每个单元测试函数应该为被测试函数名结尾。函数可能在测试环境不可执行,那么无法获取的执行结果,从而无法对进行单元测试。 本文首发于 https://jaychen.cc/article/34作者 Jaychen showImg(https://segmentfault.com/img/...

    娣辩孩 评论0 收藏0
  • PHPUnit实践三(构建模块化的测试单元

    摘要:本系列教程所有的测试基于版本,框架目录结构模块下的目录是符合的模块结构的如等是模块目录下的结构目录如果有自己的目录同级分配即可,如我这里的整体结构重写过基类的测试基类,用于我们用这个基类做测试基类,后续会说明自动加载文件测试用例目录某测试模 本系列教程所有的PHPUnit测试基于PHPUnit6.5.9版本,Lumen 5.5框架 目录结构 模块下的目录是符合Lumen的模块结构的如:...

    goji 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<