PHP单元测试配置与使用方法详解


Posted in PHP onDecember 27, 2019

本文实例讲述了PHP单元测试配置与使用方法。分享给大家供大家参考,具体如下:

php与其他语言不太一样,单元测试需要自己安装和配置,相对麻烦一点,不过单元测试对于提高库的稳定性和健壮性还是非常给力的,下面教大家怎么配置PHP单元测试

注意:php需升级到7.1版本以上

配置说明

1.全局安装phpunit命令脚本

$ wget https://phar.phpunit.de/phpunit-7.0.phar
$ chmod +x phpunit-7.0.phar
$ sudo mv phpunit-7.0.phar /usr/local/bin/phpunit
$ phpunit --version
PHPUnit x.y.z by Sebastian Bergmann and contributors.

2.全局安装安装phpunit代码

composer global require phpunit/phpunit

3.创建 phpunit.xml放在你的项目根目录, 这个文件是 phpunit 会默认读取的一个配置文件:

<phpunit bootstrap="vendor/autoload.php">
  <testsuites>
    <testsuite name="service">
      <directory>tests</directory>
    </testsuite>
  </testsuites>
</phpunit>

4.配置phpstorm单元phpunit.phar路径,Languages & Frameworks > PHP > PHPUinit

如我的phpunit本地的路径为/usr/local/bin/phpunit

PHP单元测试配置与使用方法详解

5.配置单元测试类提示,Languages & Frameworks > PHP > include path

如我的phpunit包本地的路径为/Users/chenqionghe/.composer/vendor/phpunit

PHP单元测试配置与使用方法详解

6.单元测试编写

1.Class为Demo的测试类为DemoTest

2.测试类继承于 PHPUnit\Framework\TestCase

3.测试方法

  • 必须为public权限,
  • 一般以test开头,也可以给其加注释@test来标识
  • 在测试方法内,类似于 assertEquals() 这样的断言方法用来对实际值与预期值的匹配做出断言。
<?php
use Eoffcn\Utils\Arrays;
use PHPUnit\Framework\TestCase;
/**
 * Array测试用例
 * Class ArraysTest
 */
class ArraysTest extends TestCase
{
  public function testGet()
  {
    $array = [
      1 => [
        'b' => [
          'c' => 'cqh'
        ]
      ],
      2 => [
        'b' => [
          'c' => 'cqh'
        ] ]
    ];
    $this->assertEquals('cqh', Arrays::get($array, '1.b.c'));
  }
}

执行单元测试

 

1.执行单个文件单元测试

Phpstorm方式,当前测试类右键Run即可

PHP单元测试配置与使用方法详解

命令行的方式,进行项目目录执行

phpunit tests/ArraysTest.php

PHP单元测试配置与使用方法详解

2.执行全局单元测试

phpstorm方式

 PHP单元测试配置与使用方法详解

PHP单元测试配置与使用方法详解

命令行方式,命令行下进入当前项目执行

phpunit

PHP单元测试配置与使用方法详解

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
一些 PHP 管理系统程序中的后门
Aug 05 PHP
zen cart新进商品的随机排序修改方法
Sep 10 PHP
上传文件先创建目录 再上传到目录里面去
Dec 29 PHP
php生成图形(Libchart)实例
Nov 06 PHP
JavaScript创建命名空间的5种写法
Jun 24 PHP
php实现随机生成易于记忆的密码
Jun 19 PHP
PHP通过加锁实现并发情况下抢码功能
Aug 10 PHP
Yii2下点击验证码的切换实例代码
Mar 14 PHP
删除PHP数组中头部、尾部、任意元素的实现代码
Apr 10 PHP
PHP实现的无限分类类库定义与用法示例【基于thinkPHP】
Aug 06 PHP
php从数据库中获取数据用ajax传送到前台的方法
Aug 20 PHP
laravel中的一些简单实用功能
Nov 03 PHP
PHP全局使用Laravel辅助函数dd
Dec 26 #PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
Dec 25 #PHP
PHP高并发和大流量解决方案整理
Dec 24 #PHP
thinkphp5实现微信扫码支付
Dec 23 #PHP
PHP实现笛卡尔积算法的实例讲解
Dec 22 #PHP
PHP架构及原理知识点详解
Dec 22 #PHP
Laravel 验证码认证学习记录小结
Dec 20 #PHP
You might like
PHP递归返回值时出现的问题解决办法
2013/02/19 PHP
php压缩和解压缩字符串的方法
2015/03/14 PHP
php将图片文件转换成二进制输出的方法
2015/06/10 PHP
laravel 实现根据字段不同值做不同查询
2019/10/23 PHP
符合W3C网页标准的iframe标签的使用方法
2007/07/19 Javascript
jQuery源码分析-04 选择器-Sizzle-工作原理分析
2011/11/14 Javascript
JQuery for与each性能比较分析
2013/05/14 Javascript
Jquery中children与find之间的区别详细解析
2013/11/29 Javascript
js关于字符长度限制的问题示例探讨
2014/01/24 Javascript
Js获取下拉框选定项的值和文本的实现代码
2014/02/26 Javascript
理解jQuery stop()方法
2014/11/21 Javascript
JS实现霓虹灯文字效果的方法
2015/08/06 Javascript
跟我学习javascript的垃圾回收机制与内存管理
2015/11/23 Javascript
jquery实现两边飘浮可关闭的对联广告
2015/11/27 Javascript
原生Javascript和jQuery做轮播图简单例子
2016/10/11 Javascript
node结合swig渲染摸板的方法
2018/04/11 Javascript
vue中使用cookies和crypto-js实现记住密码和加密的方法
2018/10/18 Javascript
详解JavaScript 浮点数运算的精度问题
2019/07/23 Javascript
Vue使用Clipboard.JS在h5页面中复制内容实例详解
2019/09/03 Javascript
Vue实现push数组并删除的例子
2019/11/01 Javascript
Vue 使用typescript如何优雅的调用swagger API
2020/09/01 Javascript
python实现SMTP邮件发送功能
2020/06/16 Python
python中将zip压缩包转为gz.tar的方法
2018/10/18 Python
Python for循环与range函数的使用详解
2019/03/23 Python
django 实现celery动态设置周期任务执行时间
2019/11/19 Python
python的setattr函数实例用法
2020/12/16 Python
html5 touch事件实现页面上下滑动效果【附代码】
2016/03/10 HTML / CSS
函授本科自我鉴定
2013/11/03 职场文书
消防安全责任书范本
2014/04/15 职场文书
社区先进事迹材料
2014/05/19 职场文书
机电一体化专业毕业生自荐信
2014/06/19 职场文书
2014大四本科生自我鉴定总结
2014/10/04 职场文书
基层党员学习党的群众路线教育实践活动心得体会
2014/11/04 职场文书
2015年街道除四害工作总结
2015/05/15 职场文书
Python编程编写完善的命令行工具
2021/09/15 Python
element tree树形组件回显数据问题解决
2022/08/14 Javascript