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数据库原有字段后增加新内容
Nov 26 PHP
PHP SEO优化之URL优化方法
Apr 21 PHP
关于Zend Studio 配色方案插件的介绍
Jun 24 PHP
PHP遍历目录并返回统计目录大小
Jun 09 PHP
php中文繁体和简体相互转换的方法
Mar 21 PHP
PHP生成指定随机字符串的简单实现方法
Apr 01 PHP
PHP Streams(流)详细介绍及使用
May 12 PHP
5款适合PHP使用的HTML编辑器推荐
Jul 03 PHP
详解WordPress中分类函数wp_list_categories的使用
Jan 04 PHP
Yii2 rbac权限控制之rule教程详解
Jun 23 PHP
Yii2增删改查之查询 where参数详细介绍
Aug 08 PHP
一个实用的php验证码类
Jul 06 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自定义函数实现代码
2011/12/30 PHP
PHP中$_SERVER的详细参数与说明介绍
2013/10/26 PHP
php根据指定位置和长度获得子字符串的方法
2015/03/17 PHP
php+ajax实现的点击浏览量加1
2015/04/16 PHP
原生php实现excel文件读写的方法分析
2018/04/25 PHP
使用js检测浏览器的实现代码
2013/05/14 Javascript
javascript匿名函数应用示例介绍
2014/03/07 Javascript
JavaScript学习笔记之JS事件对象
2015/01/22 Javascript
jQuery实现的网页换肤效果示例
2016/09/20 Javascript
Jquery on绑定的事件 触发多次实例代码
2016/12/08 Javascript
JSON对象转化为字符串详解
2017/08/11 Javascript
微信小程序通过保存图片分享到朋友圈功能
2018/05/24 Javascript
angularjs http与后台交互的实现示例
2018/12/21 Javascript
微信小程序实现拍照画布指定区域生成图片
2019/07/18 Javascript
解决layui批量传值到后台操作时出现传值为空的问题
2019/09/28 Javascript
vue中@change兼容问题详解
2019/10/25 Javascript
Python使用MD5加密算法对字符串进行加密操作示例
2018/03/30 Python
python3.7+selenium模拟淘宝登录功能的实现
2020/05/26 Python
python如何进行矩阵运算
2020/06/05 Python
浅谈python锁与死锁问题
2020/08/14 Python
基于Python正确读取资源文件
2020/09/14 Python
python实现感知机模型的示例
2020/09/30 Python
Python3中对json格式数据的分析处理
2021/01/28 Python
俄罗斯购买自行车网站:Vamvelosiped
2021/01/29 全球购物
如何提高JDBC的性能
2013/04/30 面试题
平面设计的岗位职责
2013/11/08 职场文书
初中语文教学反思
2014/02/02 职场文书
《海伦?凯勒》教学反思
2014/04/17 职场文书
总经理人事任命书
2014/06/05 职场文书
小学生读书笔记
2015/07/01 职场文书
餐馆开业致辞
2015/08/01 职场文书
宾馆卫生管理制度
2015/08/06 职场文书
幼儿园老师新年寄语
2015/08/17 职场文书
html2 canvas svg不能识别的解决方案
2021/06/03 HTML / CSS
利用Matlab绘制各类特殊图形的实例代码
2021/07/16 Python
MySQL磁盘碎片整理实例演示
2022/04/03 MySQL