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 相关文章推荐
基于mysql的bbs设计(五)
Oct 09 PHP
一个更简单的无限级分类菜单代码
Jan 16 PHP
队列在编程中的实际应用(php)
Sep 04 PHP
PHP如何抛出异常处理错误
Mar 02 PHP
PHP将整个网站生成HTML纯静态网页的方法总结
Feb 05 PHP
php写的带缓存数据功能的mysqli类
Sep 06 PHP
基于php socket(fsockopen)的应用实例分析
Jun 02 PHP
使用php统计字符串中中英文字符的个数
Jun 23 PHP
smarty内置函数section的用法
Jan 22 PHP
php基于PDO连接MSSQL示例DEMO
Jul 13 PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
Nov 16 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之数据库操作详解及乱码解决!
2007/01/02 PHP
php 多关键字 高亮显示实现代码
2012/04/23 PHP
Thinkphp通过一个入口文件如何区分移动端和PC端
2017/04/18 PHP
PHP读取并输出XML文件数据的简单实现方法
2017/12/22 PHP
Laravel框架Request、Response及Session操作示例
2019/05/06 PHP
Laravel 5.2 文档 数据库 ―― 起步介绍
2019/10/21 PHP
php实现图片压缩处理
2020/09/09 PHP
Prototype Number对象 学习
2009/07/19 Javascript
查找iframe里元素的方法可传参
2013/09/11 Javascript
js脚本获取webform服务器控件的方法
2014/05/16 Javascript
JS判断是否360安全浏览器极速内核的方法
2015/01/29 Javascript
微信小程序 开发之快递查询功能的实现
2017/01/09 Javascript
js遍历json对象所有key及根据动态key获取值的方法(必看)
2017/03/09 Javascript
VUE中v-model和v-for指令详解
2017/06/23 Javascript
VUE Error: getaddrinfo ENOTFOUND localhost
2018/05/03 Javascript
jQuery选择器选中最后一个元素,倒数第二个元素操作示例
2018/12/10 jQuery
Vue父组件如何获取子组件中的变量
2019/07/24 Javascript
使用vue制作滑动标签
2019/09/21 Javascript
JavaScript鼠标悬停事件用法解析
2020/05/15 Javascript
python实现DES加密解密方法实例详解
2015/06/30 Python
Python网络编程中urllib2模块的用法总结
2016/07/12 Python
python定间隔取点(np.linspace)的实现
2019/11/27 Python
torchxrayvision包安装过程(附pytorch1.6cpu版安装)
2020/08/26 Python
python中的yield from语法快速学习
2020/11/06 Python
美国购买新书和二手书网站:Better World Books
2018/10/31 全球购物
美国家居用品和厨具购物网站:DealsDot
2019/10/07 全球购物
将时尚融入珠宝:Adornmonde
2019/10/17 全球购物
杭州龙健科技笔试题.net部分笔试题
2016/01/24 面试题
党员自我评价分享
2013/12/13 职场文书
乌鸦喝水教学反思
2014/02/07 职场文书
英语教育专业自荐信
2014/05/29 职场文书
法定代表人授权委托书格式
2014/10/14 职场文书
年终奖金发放管理制度,中小企业适用,拿去救急吧!
2019/07/12 职场文书
PyQt5实现多张图片显示并滚动
2021/06/11 Python
Nginx图片服务器配置之后图片访问404的问题解决
2022/03/21 Servers
教你使用RustDesk 搭建一个自己的远程桌面中继服务器
2022/08/14 Servers