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设计模式 Builder(建造者模式)
Jun 26 PHP
解析获取优酷视频真实下载地址的PHP源代码
Jun 26 PHP
YII模块实现绑定二级域名的方法
Jul 09 PHP
php获取指定日期之间的各个周和月的起止时间
Nov 24 PHP
php实现zip文件解压操作
Nov 03 PHP
教大家制作简单的php日历
Nov 17 PHP
学习php设计模式 php实现模板方法模式
Dec 08 PHP
PHP图形计数器程序显示网站用户浏览量
Jul 20 PHP
php 输出json及显示json中的中文汉字详解及实例
Nov 09 PHP
PHP使用glob方法遍历文件夹下所有文件的实例
Oct 17 PHP
thinkPHP3.2使用RBAC实现权限管理的实现
Aug 27 PHP
php设计模式之策略模式实例分析【星际争霸游戏案例】
Mar 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编写大型网站问题集
2007/03/06 PHP
浅析PHP微信支付通知的处理方式
2014/05/25 PHP
PHP高手需要要掌握的知识点
2014/08/21 PHP
PHP判断用户是否已经登录(跳转到不同页面或者执行不同动作)
2016/09/22 PHP
PHP实现模拟http请求的方法分析
2017/12/20 PHP
纯js实现div内图片自适应大小(已测试,兼容火狐)
2014/06/16 Javascript
JS验证邮件地址格式方法小结
2015/12/01 Javascript
Javascript中的Prototype到底是什么
2016/02/16 Javascript
JavaScript中的对象和原型(一)
2016/08/12 Javascript
JS制作图形验证码实现代码
2020/10/19 Javascript
JQuery ZTree使用方法详解
2017/01/07 Javascript
分享一个精简的vue.js 图片lazyload插件实例
2017/03/13 Javascript
nodejs中向HTTP响应传送进程的输出
2017/03/19 NodeJs
JavaScript限定范围拖拽及自定义滚动条应用(3)
2017/05/17 Javascript
node.js基础知识小结
2018/02/26 Javascript
angular4 共享服务在多个组件中数据通信的示例
2018/03/30 Javascript
vue添加axios,并且指定baseurl的方法
2018/09/19 Javascript
JS合并两个数组的3种方法详解
2019/10/24 Javascript
微信小程序vant弹窗组件的实现方式
2020/02/21 Javascript
vue路由跳转传递参数的方式总结
2020/05/10 Javascript
javascript实现时间日期的格式化的方法汇总
2020/08/06 Javascript
[38:21]2018DOTA2亚洲邀请赛3月30日 小组赛A组 LGD VS Newbee
2018/03/31 DOTA
Python实现的各种常见分布算法示例
2018/12/13 Python
python调用java的jar包方法
2018/12/15 Python
详解用python写网络爬虫-爬取新浪微博评论
2019/05/10 Python
Python使用Beautiful Soup爬取豆瓣音乐排行榜过程解析
2019/08/15 Python
Pytorch反向求导更新网络参数的方法
2019/08/17 Python
详解Django CAS 解决方案
2019/10/30 Python
X/HTML5 和 XHTML2
2008/10/17 HTML / CSS
c语言常见笔试题总结
2016/09/05 面试题
毕业生找工作的求职信范文
2013/12/24 职场文书
中学生爱国演讲稿
2013/12/31 职场文书
求职信范文英文版
2014/01/05 职场文书
努力学习演讲稿
2014/05/10 职场文书
党支部特色活动方案
2014/08/20 职场文书
广播稿:校园广播稿范文
2019/04/17 职场文书