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中与数组相关的函数
Mar 22 PHP
PHP多线程抓取网页实现代码
Jul 22 PHP
PHP和Mysqlweb应用开发核心技术 第1部分 Php基础-3 代码组织和重用2
Jul 03 PHP
JpGraph php柱状图使用介绍
Aug 23 PHP
php Hex RGB颜色值互换的使用
May 10 PHP
php简单判断文本编码的方法
Jul 30 PHP
WordPress中用于更新伪静态规则的PHP代码实例讲解
Dec 18 PHP
PHP水印类,支持添加图片、文字、填充颜色区域的实现
Feb 04 PHP
Windows上php5.6操作mongodb数据库示例【配置、连接、获取实例】
Feb 13 PHP
PHP调用QQ互联接口实现QQ登录网站功能示例
Oct 24 PHP
Laravel 解决419错误 -ajax请求错误的问题(CSRF验证)
Oct 25 PHP
php反序列化长度变化尾部字符串逃逸(0CTF-2016-piapiapia)
Feb 15 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
Discuz! 5.0.0论坛程序中加入一段js代码,让会员点击下载附件前自动弹出提示窗口
2007/04/18 PHP
Phpbean路由转发的php代码
2008/01/10 PHP
PHP多线程抓取网页实现代码
2010/07/22 PHP
浅析Dos下运行php.exe,出现没有找到php_mbstring.dll 错误的解决方法
2013/06/29 PHP
PHP入门教程之面向对象基本概念实例分析
2016/09/11 PHP
thinkPHP5.0框架应用请求生命周期分析
2017/03/25 PHP
php校验公钥是否可用的实例方法
2019/09/17 PHP
js实现拖拽 闭包函数详细介绍
2012/11/25 Javascript
鼠标移动到图片名上,显示图片的简单实例
2013/07/14 Javascript
js 中的switch表达式使用示例
2020/06/03 Javascript
浅谈jquery.form.js的ajaxSubmit和ajaxForm的使用
2016/09/09 Javascript
Javascript实现前端简单的路由实例
2016/09/11 Javascript
Vue.js双向绑定操作技巧(初级入门)
2016/12/27 Javascript
VUE2实现事件驱动弹窗示例
2017/10/21 Javascript
详解html-webpack-plugin用法全解
2018/01/22 Javascript
Vue 通过自定义指令回顾v-内置指令(小结)
2018/09/03 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【凹多边形的分离轴检测算法】
2018/12/13 Javascript
使用imba.io框架得到比 vue 快50倍的性能基准
2019/06/17 Javascript
layui自己添加图片按钮并点击跳转页面的例子
2019/09/14 Javascript
Layui数据表格之单元格编辑方式
2019/10/26 Javascript
[09:37]2018DOTA2国际邀请赛寻真——不懈追梦的Team Serenity
2018/08/13 DOTA
Python+matplotlib实现计算两个信号的交叉谱密度实例
2018/01/08 Python
python爬虫之模拟登陆csdn的实例代码
2018/05/18 Python
Python使用装饰器模拟用户登陆验证功能示例
2018/08/24 Python
对Python中画图时候的线类型详解
2019/07/07 Python
python识别验证码图片实例详解
2020/02/17 Python
Python运行异常管理解决方案
2020/03/09 Python
用CSS3的box-reflect设置文字倒影效果的方法讲解
2016/03/07 HTML / CSS
BabyBjörn婴儿背带法国官网:BabyBjorn法国
2018/06/16 全球购物
托管代码(Managed Code)和非托管代码(Unmanaged Code)有什么区别
2014/09/29 面试题
大三学生做职业规划:给未来找个方向
2014/02/24 职场文书
2014年两会学习心得体会
2014/03/10 职场文书
单位委托书范本
2014/04/04 职场文书
罗马假日观后感
2015/06/08 职场文书
总结会主持词
2015/07/02 职场文书
OpenCV实现反阈值二值化
2021/11/17 Java/Android