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设计模式 Composite (组合模式)
Jun 26 PHP
php引用地址改变变量值的问题
Mar 23 PHP
PHP仿博客园 个人博客(1) 数据库与界面设计
Jul 05 PHP
php图片的二进制转换实现方法
Dec 15 PHP
php+mysqli实现批量替换数据库表前缀的方法
Dec 29 PHP
在CentOS上搭建LAMP+vsftpd环境的简单指南
Aug 01 PHP
PHP中Session和Cookie是如何操作的
Oct 10 PHP
PHP实现冒泡排序的简单实例
May 26 PHP
php封装一个异常的处理类
Jun 08 PHP
php工具型代码之印章抠图
Jul 18 PHP
safari下载文件自动加了html后缀问题
Nov 09 PHP
Laravel框架Eloquent ORM修改数据操作示例
Dec 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
基于Windows下Apache PHP5.3.1安装教程
2010/01/08 PHP
基于PHP的cURL快速入门教程 (小偷采集程序)
2011/06/02 PHP
php+ajax做仿百度搜索下拉自动提示框(有实例)
2012/08/21 PHP
PHP邮件发送类PHPMailer用法实例详解
2014/09/22 PHP
用jQuery与JSONP轻松解决跨域访问的问题
2014/02/04 Javascript
JavaScript实现的链表数据结构实例
2015/04/02 Javascript
JavaScript对象反射用法实例
2015/04/17 Javascript
javascript轻量级库createjs使用Easel实现拖拽效果
2016/02/19 Javascript
学习vue.js条件渲染
2016/12/03 Javascript
javascript实现去除HTML标签的方法
2016/12/26 Javascript
老生常谈的跨域处理
2017/01/11 Javascript
jQuery插件zTree实现删除树子节点的方法示例
2017/03/08 Javascript
浅谈 vue 中的 watcher
2017/12/04 Javascript
JS实现标签滚动切换效果
2017/12/25 Javascript
深入理解Vue 组件之间传值
2018/08/16 Javascript
vue踩坑记-在项目中安装依赖模块npm install报错
2019/04/02 Javascript
微信公众平台 客服接口发消息的实现代码(Java接口开发)
2019/04/17 Javascript
vue实现微信分享链接添加动态参数的方法
2019/04/29 Javascript
超轻量级的js时间库miment使用解析
2019/08/02 Javascript
Jquery使用each函数实现遍历及数组处理
2020/07/14 jQuery
vue 使用微信jssdk,调用微信相册上传图片功能
2020/11/13 Javascript
Python中的进程分支fork和exec详解
2015/04/11 Python
详解Python中的各种函数的使用
2015/05/24 Python
详解Python3 基本数据类型
2019/04/19 Python
python pycharm的安装及其使用
2019/10/11 Python
使用Python求解带约束的最优化问题详解
2020/02/11 Python
Python远程linux执行命令实现
2020/11/11 Python
CSS3实现时间轴效果
2016/07/11 HTML / CSS
墨西哥巴士车票在线购买:ClickBus
2018/03/27 全球购物
Ted Baker美国官网:英国时尚品牌
2018/10/29 全球购物
社会发展项目建议书
2014/08/25 职场文书
2014年教研员工作总结
2014/12/23 职场文书
投标承诺函范文
2015/01/21 职场文书
酒店财务总监岗位职责
2015/04/03 职场文书
入党介绍人意见范文
2015/06/01 职场文书
电影红河谷观后感
2015/06/11 职场文书