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中通过加号合并数组的一个简单方法分享
Jan 27 PHP
.htaccess文件保护实例讲解
Feb 06 PHP
PHP第一季视频教程(李炎恢+php100 不断更新)
May 29 PHP
ThinkPHP中redirect用法分析
Dec 05 PHP
浅析PHP中call user func()函数及如何使用call user func调用自定义函数
Nov 05 PHP
php对接java现实加签验签的实例
Nov 25 PHP
详解Yii实现分页的两种方法
Jan 14 PHP
PHP合并数组函数array_merge用法分析
Feb 17 PHP
浅析PHP数据导出知识点
Feb 17 PHP
PHP排序算法之快速排序(Quick Sort)及其优化算法详解
Apr 21 PHP
Yii2压缩PHP中模板代码的输出问题
Aug 28 PHP
phpStudy vscode 搭建debug调试的教程详解
Jul 28 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 Ctemplate引擎开发相关内容
2012/03/03 PHP
phpmyadmin显示utf8_general_ci中文乱码的问题终级篇
2013/04/08 PHP
基于php中使用excel的简单介绍
2013/08/02 PHP
php文件上传 你真的掌握了吗
2016/11/28 PHP
php实现微信支付之现金红包
2018/05/30 PHP
PHP实现批量修改文件名的方法示例
2019/09/18 PHP
JavaScript 全角转半角部分
2009/10/28 Javascript
锋利的jQuery 要点归纳(二) jQuery中的DOM操作(下)
2010/03/23 Javascript
在iframe里的页面编写js,实现在父窗口上创建动画效果展开和收缩的div(不变动iframe父窗口代码)
2011/12/20 Javascript
checkbox设置复选框的只读效果不让用户勾选
2013/08/12 Javascript
jquery实现的用户注册表单提示操作效果代码分享
2015/08/28 Javascript
JQuery ztree 异步加载实例讲解
2016/02/25 Javascript
实例剖析AngularJS框架中数据的双向绑定运用
2016/03/04 Javascript
简单的分页代码js实现
2016/05/17 Javascript
JS实现运动缓冲效果的封装函数示例
2018/02/18 Javascript
Vue通过ref父子组件拿值方法
2018/09/12 Javascript
vue柱状进度条图像的完美实现方案
2019/08/26 Javascript
jquery实现简单每周轮换的日历
2020/09/10 jQuery
[02:54]DOTA2英雄基础教程 暗影牧师戴泽
2013/12/05 DOTA
[04:11]DOTA2亚洲邀请赛小组赛第一日 TOP10精彩集锦
2015/01/30 DOTA
[57:09]DOTA2-DPC中国联赛 正赛 Phoenix vs Dynasty BO3 第一场 1月26日
2021/03/11 DOTA
Python实现合并同一个文件夹下所有PDF文件的方法示例
2018/04/28 Python
解决Ubuntu pip 安装 mysql-python包出错的问题
2018/06/11 Python
python+opencv实现霍夫变换检测直线
2020/10/23 Python
Python弹出输入框并获取输入值的实例
2019/06/18 Python
利用Python产生加密表和解密表的实现方法
2019/10/15 Python
Python实现图像去噪方式(中值去噪和均值去噪)
2019/12/18 Python
python序列化与数据持久化实例详解
2019/12/20 Python
英国最大的宠物食品和宠物用品网上零售商: Zooplus
2016/08/01 全球购物
Marc Jacobs彩妆官网:Marc Jacobs Beauty
2017/07/03 全球购物
Lancer Skincare官方网站:抗衰老皮肤护理
2020/11/20 全球购物
个人找工作的自我评价
2013/10/17 职场文书
早恋主题班会
2015/08/14 职场文书
用Python爬取各大高校并可视化帮弟弟选大学,弟弟直呼牛X
2021/06/11 Python
SpringCloud的JPA连接PostgreSql的教程
2021/06/26 Java/Android
MySql统计函数COUNT的具体使用详解
2022/08/14 MySQL