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 相关文章推荐
thinkphp3.0 模板中函数的使用
Nov 13 PHP
php连接Access数据库错误及解决方法
Jun 20 PHP
PHP使用imagick读取PDF生成png缩略图的两种方法
Mar 20 PHP
php+highchats生成动态统计图
May 21 PHP
php绘图之加载外部图片的方法
Jan 24 PHP
PHP CodeIgniter框架的工作原理研究
Mar 30 PHP
基于php实现随机合并数组并排序(原排序)
Nov 26 PHP
PHP+MySQL统计该库中每个表的记录数并按递减顺序排列的方法
Feb 15 PHP
PHP使用GD库输出汉字的方法【测试可用】
Nov 10 PHP
php实现的二分查找算法示例
Jun 20 PHP
Laravel5.* 打印出执行的sql语句的方法
Jul 24 PHP
eval(cmd)与eval($cmd)的区别与联系
Jul 07 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判断服务器是否支持Gzip压缩功能
2013/09/24 PHP
php使用CURL不依赖COOKIEJAR获取COOKIE的方法
2015/06/17 PHP
PHP正则表达式处理函数(PCRE 函数)实例小结
2019/05/09 PHP
测试JavaScript字符串处理性能的代码
2009/12/07 Javascript
js/ajax跨越访问-jsonp的原理和实例(javascript和jquery实现代码)
2012/12/27 Javascript
解析jquery获取父窗口的元素
2013/06/26 Javascript
JavaScript的History API使搜索引擎抓取AJAX内容
2015/12/07 Javascript
AngularJS基础 ng-include 指令示例讲解
2016/08/01 Javascript
JS中绑定事件顺序(事件冒泡与事件捕获区别)
2017/01/24 Javascript
jQuery获取table表中的td标签(实例讲解)
2017/07/28 jQuery
vue 每次渲染完页面后div的滚动条保持在最底部的方法
2018/03/17 Javascript
微信小程序npm引入vant-weapp的踩坑记录
2019/08/01 Javascript
layui给下拉框、按钮状态、时间赋初始值的方法
2019/09/10 Javascript
Vue分页插件的前后端配置与使用
2019/10/09 Javascript
js仿360开机效果
2019/12/26 Javascript
解决Vue 给mapState中定义的属性赋值报错的问题
2020/06/22 Javascript
解决VueCil代理本地proxytable无效报错404的问题
2020/11/07 Javascript
python获取当前用户的主目录路径方法(推荐)
2017/01/12 Python
python 用opencv调用训练好的模型进行识别的方法
2018/12/07 Python
如何利用Python分析出微信朋友男女统计图
2019/01/25 Python
python无序链表删除重复项的方法
2020/01/17 Python
python GUI库图形界面开发之PyQt5窗口布局控件QStackedWidget详细使用方法
2020/02/27 Python
python的列表List求均值和中位数实例
2020/03/03 Python
如何基于python3和Vue实现AES数据加密
2020/03/27 Python
python爬取抖音视频的实例分析
2021/01/19 Python
使用CSS3的rem属性制作响应式页面布局的要点解析
2016/05/24 HTML / CSS
美国创意礼品网站:UncommonGoods
2017/02/03 全球购物
Shop Apotheke瑞士:您的健康与美容网上商店
2019/10/09 全球购物
澳大利亚在线性感内衣商店:Fantasy Lingerie
2021/02/07 全球购物
学校节能减排方案
2014/06/13 职场文书
大学生思想道德自我评价
2015/03/09 职场文书
小学班主任工作总结2015
2015/04/07 职场文书
简历自我评价:教师师德表现自我评价
2019/04/24 职场文书
my.ini优化mysql数据库性能的十个参数(推荐)
2021/05/26 MySQL
为Centos安装指定版本的Docker
2022/04/01 Servers
详细介绍python操作RabbitMq
2022/04/12 Python