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出错界面
Oct 09 PHP
在IIS上安装PHP4.0正式版
Oct 09 PHP
手把手教你使用DedeCms V3的在线采集图文教程
Apr 03 PHP
PHP伪造referer实例代码
Sep 20 PHP
php学习之简单计算器实现代码
Jun 09 PHP
php数组函数序列之each() - 获取数组当前内部指针所指向元素的键名和键值,并将指针移到下一位
Oct 31 PHP
10 个经典PHP函数
Oct 17 PHP
php安装swoole扩展的方法
Mar 19 PHP
YII框架批量插入数据的方法
Mar 18 PHP
PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能
Nov 10 PHP
PHP命名空间namespace及use的简单用法分析
Aug 03 PHP
PHP队列场景以及实现代码实例详解
Feb 26 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函数重载的替代方法--伪重载详解
2015/05/08 PHP
PHP mkdir创建文件夹实现方法解析
2020/11/13 PHP
使用户点击后退按钮使效三行代码
2007/07/07 Javascript
判断ie的两种简单方法
2013/08/12 Javascript
js数值和和字符串进行转换时可以对不同进制进行操作
2014/03/05 Javascript
jquery中val()方法是从最后一个选项往前读取的
2015/09/06 Javascript
JavaScript知识点整理
2015/12/09 Javascript
7个jQuery最佳实践
2016/01/12 Javascript
Bootstrap Paginator分页插件与ajax相结合实现动态无刷新分页效果
2016/05/27 Javascript
微信公众号 摇一摇周边功能开发
2016/12/08 Javascript
javascript输出AscII码扩展集中的字符方法
2016/12/26 Javascript
学习jQuery中的noConflict()用法
2018/09/28 jQuery
element-ui 本地化使用教程详解
2019/10/28 Javascript
jQuery利用cookie 实现本地收藏功能(不重复无需多次命名)
2019/11/07 jQuery
react 原生实现头像滚动播放的示例
2020/04/21 Javascript
vue脚手架项目创建步骤详解
2021/03/02 Vue.js
[04:44]显微镜下的DOTA2第二期——你所没有注意到的细节
2014/06/20 DOTA
[02:49]2018DOTA2亚洲邀请赛主赛事决赛日战况回顾 Mineski鏖战5局夺得辉耀
2018/04/10 DOTA
Python3 能振兴 Python的原因分析
2014/11/28 Python
Python的MongoDB模块PyMongo操作方法集锦
2016/01/05 Python
解决python文件字符串转列表时遇到空行的问题
2017/07/09 Python
django从请求到响应的过程深入讲解
2018/08/01 Python
python机器学习之神经网络实现
2018/10/13 Python
Python三元运算与lambda表达式实例解析
2019/11/30 Python
浅谈pytorch torch.backends.cudnn设置作用
2020/02/20 Python
python小程序之4名牌手洗牌发牌问题解析
2020/05/15 Python
keras导入weights方式
2020/06/12 Python
利用SVG和CSS3来实现一个炫酷的边框动画
2015/07/22 HTML / CSS
预订旅游活动、景点和旅游:GetYourGuide
2019/09/29 全球购物
武汉世纪畅想数字传播有限公司.NET笔试题
2014/07/22 面试题
车间组长岗位职责
2013/12/20 职场文书
拓展培训心得体会
2014/01/04 职场文书
不拖欠农民工工资承诺书
2014/03/31 职场文书
关于教师节的演讲稿
2014/09/04 职场文书
加强党性修养心得体会
2016/01/21 职场文书
聊一聊Redis与MySQL双写一致性如何保证
2021/06/26 Redis