phpunit与xdebug的使用

Posted 芭菲雨的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了phpunit与xdebug的使用相关的知识,希望对你有一定的参考价值。

基本说明:

1.xdebug是程序猿在调试程序过程中使用的bug调试暴露工具

  windows下安装:

  1)下载php对应的dll文件,下载地址:https://xdebug.org/download.php

  2)在php.ini文件中做对应xdebug的配置,只需要在最后加上下面的代码

[Xdebug]
zend_extension="C:/xampp/php/ext/php_xdebug.dll"

  3)因为我是集成环境xampp的一键安装,不需要下载dll文件,在xampp内部已经存在,只需在php配置文件末尾添加对应配置即可,请不要在额外有extention;如果自行下载dll文件,注意下载与php版本与线程相匹配的文件;zend_extension这个名称也会随着php版本的不同而变化,如果遇到了相应问题,网络上有很多对应说明。

2.phpunit是测试人员单元测试工具,需要对程序员的开发代码进行每个类至每个方法的“断言”,常常程序员在开发过程中也会编写对应的测试用例代码,方便后期代码变动的测试。

  1)在集成环境xampp中,我的安装方式是pear命令行安装:

pear install phpunit/PHPUnit

  安装完之后,你会在php的根目录下看到pear.bat文件  

  安装完之后,最好设置phpunit为环境变量,这样就可以全局使用了,phpunit环境变量对应的目录就是pear.bat文件所在的目录  

  2)安装完之后我创建一个测试文件,代码如下:

<?php
//This is my first test
class MyFirstTest extends PHPUnit_Framework_TestCase{
  public function testFirst(){
    $stack = 7;
    $this->assertEquals(0,$stack);
  }
}

  3)创建完单元测试文件之后,让我们去命令行执行一下,以下是命令行显示:

C:\Users\v_lihuan1>phpunit F:\www\testCase.php
PHPUnit 3.7.21 by Sebastian Bergmann.

F

Time: 0 seconds, Memory: 2.00Mb

There was 1 failure:

1) MyFirstTest::testFirst
Failed asserting that 7 matches expected 0.

F:\www\testCase.php:6

FAILURES!
Tests: 1, Assertions: 1, Failures: 1.

  现在phpunit已经可以用了,至于断言的内容和代码的编写,我们只需要查看对应phpunit的方法文档即可

3.pdepend是一个PHP中静态代码分析的工具。它可以用来检查你的PHP项目中的代码规模和复杂程度.我也是第一次安装,如有不妥,请大家指教

执行命令行:pear install pdepend/PHP_Depend-beta ,出现以下问题

F:\www\xdebug>pear install pdepend/PHP_Depend-beta
Did not download optional dependencies: pecl/imagick, use --alldeps to download automatically
pdepend/PHP_Depend can optionally use package "pecl/imagick" (version >= 2.2.0b2)
downloading PHP_Depend-1.1.4.tgz ...
Starting to download PHP_Depend-1.1.4.tgz (179,584 bytes)
.....................done: 179,584 bytes
ERROR: failed to mkdir C:\php\pear\docs\PHP_Depend

F:\www\xdebug>

按照文中所说是缺少对应依赖pecl/imagick,需要先安装这个插件.我查到pear有可以将对应依赖一次全部执行的命令,如下所示:

F:\www\xdebug>pear install --alldeps pdepend/PHP_Depend-beta
downloading PHP_Depend-1.1.4.tgz ...
Starting to download PHP_Depend-1.1.4.tgz (179,584 bytes)
......................................done: 179,584 bytes
downloading imagick-3.4.3.tgz ...
Starting to download imagick-3.4.3.tgz (245,410 bytes)
...done: 239,218 bytes
install ok: channel://pear.pdepend.org/PHP_Depend-1.1.4
ERROR: unable to unpack C:\Users\V_LIHU~1\AppData\Local\Temp\pear\download\imagick-3.4.3.tgz

F:\www\xdebug>

如上所示:pecl/imagick解压失败,按照理解,也就是安装未成功??

【待续。。。。】

 

 

 

在使用的过程中遇到以下问题:

前提注意:

1.phpunit在环境变量中设置,使其可以全局使用

2.phpunit -version查看phpunit版本

3.phpunit可以将文件夹内所有的测试用例执行,并生成报告文件,这样更方便我们全局代码管理

F:\www\xdebug>phpunit --coverage-html /test1 test.php
PHPUnit 3.7.21 by Sebastian Bergmann.

.

Time: 5 seconds, Memory: 3.25Mb

OK (1 test, 1 assertion)

Generating code coverage report in HTML format ... done

F:\www\xdebug>
/test1是生成的报告文件的存放位置,test.php是对应要执行的测试用例,我们也可以将其设置为文件夹,那么文件夹下的所有测试用例都将被执行

以上是关于phpunit与xdebug的使用的主要内容,如果未能解决你的问题,请参考以下文章

xdebug : phpunit 代码覆盖的致命错误

使用 PHPStorm 解决 PHPUnit xdebug 远程调试问题

phpunit 单元测试之代码覆盖率

带有 Xdebug 的 PHPUnit 测试资源管理器 - VSCode

在 Gitlab CI 上更改 Xdebug 模式 PHP Docker

运行 PHPUnit 测试时无法加载 Xdebug