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 相关文章推荐
杏林同学录(五)
Oct 09 PHP
PHP 图片水印类代码
Aug 27 PHP
基于PHP一些十分严重的缺陷详解
Jun 03 PHP
深入理解:单一入口、MVC、ORM、CURD、ActiveRecord概念
Jun 06 PHP
PHP 冒泡排序 二分查找 顺序查找 二维数组排序算法函数的详解
Jun 25 PHP
PHP引用(&amp;)各种使用方法实例详解
Mar 20 PHP
php输出全球各个时区列表的方法
Mar 31 PHP
Yii框架中sphinx索引配置方法解析
Oct 18 PHP
php-fpm中max_children的配置
Mar 15 PHP
Laravel框架学习笔记之批量更新数据功能
May 30 PHP
PHP实现的抓取小说网站内容功能示例
Jun 27 PHP
PHP框架实现WebSocket在线聊天通讯系统
Nov 21 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下使用以下代码连接并测试
2008/04/09 PHP
用PHP读取和编写XML DOM的实现代码
2011/02/03 PHP
php结合curl实现多线程抓取
2015/07/09 PHP
php对接java现实加签验签的实例
2016/11/25 PHP
使用PHPStorm+XDebug搭建单步调试环境
2017/11/19 PHP
JS 日期验证正则附asp日期格式化函数
2009/09/11 Javascript
基于jquery的获取mouse坐标插件的实现代码
2010/04/01 Javascript
最佳的addEvent事件绑定是怎样诞生的
2011/10/24 Javascript
JS实现判断滚动条滚到页面底部并执行事件的方法
2014/12/18 Javascript
jQuery过滤HTML标签并高亮显示关键字的方法
2015/08/07 Javascript
JavaScript 中 avalon绑定属性总结
2016/10/19 Javascript
JavaScript实现数组降维详解
2017/01/05 Javascript
JS跨域请求外部服务器的资源
2017/02/06 Javascript
layui框架中layer父子页面交互的方法分析
2017/11/15 Javascript
微信小程序列表中item左滑删除功能
2018/11/07 Javascript
解决vue单页面应用中动态修改title问题
2019/06/09 Javascript
详解在Python程序中自定义异常的方法
2015/10/16 Python
python3音乐播放器简单实现代码
2020/04/20 Python
Python基于高斯消元法计算线性方程组示例
2018/01/17 Python
python的re正则表达式实例代码
2018/01/24 Python
pytorch之添加BN的实现
2020/01/06 Python
Tensorflow进行多维矩阵的拆分与拼接实例
2020/02/07 Python
Django调用百度AI接口实现人脸注册登录代码实例
2020/04/23 Python
python3.5的包存放的具体路径
2020/08/16 Python
Python如何使用vars返回对象的属性列表
2020/10/17 Python
如何在pycharm中安装第三方包
2020/10/27 Python
python获取命令行参数实例方法讲解
2020/11/02 Python
美国最大婚纱连锁店运营商:David’s Bridal
2019/03/12 全球购物
外贸员简历中的自我评价
2014/03/04 职场文书
质量安全标语
2014/06/07 职场文书
体操比赛口号
2014/06/10 职场文书
优秀应届毕业生自荐书
2014/06/29 职场文书
外贸采购员岗位职责
2015/04/03 职场文书
社区环境卫生倡议书
2015/04/29 职场文书
运动会致辞稿
2015/07/29 职场文书
Python爬虫之爬取最新更新的小说网站
2021/05/06 Python