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 相关文章推荐
一个分页的论坛
Oct 09 PHP
PHP递归调用的小技巧讲解
Feb 19 PHP
深入php多态的实现详解
Jun 09 PHP
php登陆页的密码处理方式分享
Oct 14 PHP
PHPUnit安装及使用示例
Oct 29 PHP
PHP引用的调用方法分析
Apr 25 PHP
详解PHP实现定时任务的五种方法
Jul 25 PHP
laravel如何开启跨域功能示例详解
Aug 31 PHP
使用PHP+MySql实现微信投票功能实例代码
Sep 29 PHP
yii框架redis结合php实现秒杀效果(实例代码)
Oct 26 PHP
PHP count()函数讲解
Feb 03 PHP
PHP二维索引数组的遍历实例分析【2种方式】
Jun 24 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之Smarty入门
2007/01/04 PHP
PHP 文本文章分页代码 按标记或长度(不涉及数据库)
2012/06/07 PHP
基于PHP输出缓存(output_buffering)的深入理解
2013/06/13 PHP
本地计算机无法启动Apache故障处理
2014/08/08 PHP
PHP使用Face++接口开发微信公众平台人脸识别系统的方法
2015/04/17 PHP
Avengerls vs Newbee BO3 第三场2.18
2021/03/10 DOTA
javascript写的一个链表实现代码
2009/10/25 Javascript
6个DIV 135或246间隔一秒轮番显示效果
2010/07/24 Javascript
在IE和VB中支持png图片透明效果的实现方法(vb源码打包)
2011/04/01 Javascript
给js文件传参数(详解)
2014/07/13 Javascript
JavaScript实现重置表单(reset)的方法
2015/04/02 Javascript
Node.js制作简单聊天室
2017/01/12 Javascript
微信小程序 九宫格实例代码
2017/01/21 Javascript
浅谈es6语法 (Proxy和Reflect的对比)
2017/10/24 Javascript
webpack下实现动态引入文件方法
2018/02/22 Javascript
webpack中使用iconfont字体图标的方法
2018/02/22 Javascript
element el-input directive数字进行控制
2018/10/11 Javascript
微信小程序HTTP请求从0到1封装
2019/09/09 Javascript
React+EggJs实现断点续传的示例代码
2020/07/07 Javascript
vue使用echarts实现水平柱形图实例
2020/09/09 Javascript
[01:10]为家乡而战!完美世界城市挑战赛全国总决赛花絮
2019/07/25 DOTA
[01:11]steam端dota2实名认证操作流程视频
2021/03/11 DOTA
Python实例分享:快速查找出被挂马的文件
2014/06/08 Python
使用httplib模块来制作Python下HTTP客户端的方法
2015/06/19 Python
Python函数式编程指南(二):从函数开始
2015/06/24 Python
使用Python编写基于DHT协议的BT资源爬虫
2016/03/19 Python
python2.7 json 转换日期的处理的示例
2018/03/07 Python
python 使用值来排序一个字典的方法
2018/11/16 Python
Python实现蒙特卡洛算法小实验过程详解
2019/07/12 Python
Python list与NumPy array 区分详解
2019/11/06 Python
python mock测试的示例
2020/10/19 Python
Interhome丹麦:在线预订度假屋和公寓
2019/07/18 全球购物
初婚初育证明
2014/01/14 职场文书
2015年统战工作总结
2015/05/19 职场文书
毕业论文指导老师意见
2015/06/04 职场文书
html中两种获取标签内的值的方法
2022/06/16 jQuery