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 相关文章推荐
封装一个PDO数据库操作类代码
Sep 09 PHP
POSIX 风格和兼容 Perl 风格两种正则表达式主要函数的类比(preg_match, preg_replace, ereg, ereg_replace)
Oct 12 PHP
PHP逐行输出(ob_flush与flush的组合)
Feb 04 PHP
解析如何屏蔽php中的phpinfo()函数
Jun 06 PHP
解析PHP无限级分类方法及代码
Jun 21 PHP
浅析虚拟主机服务器php fsockopen函数被禁用的解决办法
Aug 07 PHP
php正则取img标记中任意属性(正则替换去掉或改变图片img标记中的任意属性)
Aug 13 PHP
PHP判断是否有Get参数的方法
May 05 PHP
php修改指定文件后缀的方法
Sep 11 PHP
PHP保存带BOM文件的方法
Feb 12 PHP
PHP进程同步代码实例
Feb 12 PHP
PHP如何根据文件头检测文件类型实例代码
Oct 14 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构造方法中析构方法在继承中的表现
2016/04/12 PHP
PHP编程快速实现数组去重的方法详解
2017/07/22 PHP
Yii框架ACF(accessController)简单权限控制操作示例
2019/04/26 PHP
CSS中简写属性要注意TRouBLe的顺序问题(避免踩坑)
2021/03/09 HTML / CSS
基于jQuery的遍历同id元素 并响应事件的代码
2012/06/14 Javascript
到处都是jQuery选择器的年代 不了解它们的性能,行吗
2012/06/18 Javascript
javascript实现input file上传图片预览效果
2015/12/31 Javascript
Nodejs进阶:基于express+multer的文件上传实例
2016/11/21 NodeJs
javascript中json基础知识详解
2017/01/19 Javascript
vue2.0自定义指令示例代码详解
2019/04/25 Javascript
Vue实现购物车的全选、单选、显示商品价格代码实例
2019/05/06 Javascript
vue 插件的方法代码详解
2019/06/06 Javascript
基于vue写一个全局Message组件的实现
2019/08/15 Javascript
layui实现二维码弹窗、并下载到本地的方法
2019/09/25 Javascript
浅谈vue中$event理解和框架中在包含默认值外传参
2020/08/07 Javascript
python3 与python2 异常处理的区别与联系
2016/06/19 Python
python实现俄罗斯方块
2018/06/26 Python
值得收藏,Python 开发中的高级技巧
2018/11/23 Python
python3爬虫学习之数据存储txt的案例详解
2019/04/24 Python
python3 tcp的粘包现象和解决办法解析
2019/12/09 Python
Python搭建Keras CNN模型破解网站验证码的实现
2020/04/07 Python
Anaconda使用IDLE的实现示例
2020/09/23 Python
CSS3实现文字描边的2种方法(小结)
2020/02/14 HTML / CSS
详解CSS3弹性伸缩盒
2020/09/21 HTML / CSS
美的官方商城:Midea
2016/09/14 全球购物
迷你分体式空调:SoGoodToBuy
2018/08/07 全球购物
Vans奥地利官方网站:美国原创极限运动潮牌
2018/09/30 全球购物
网络教育毕业生自我鉴定
2013/10/10 职场文书
党员干部承诺书
2014/03/25 职场文书
放飞梦想演讲稿800字
2014/08/26 职场文书
合同权益转让协议书模板
2014/11/18 职场文书
2014年幼儿园保育工作总结
2014/12/02 职场文书
争先创优个人总结
2015/03/04 职场文书
Html5调用企业微信的实现
2021/04/16 HTML / CSS
Java Socket实现Redis客户端的详细说明
2021/05/26 Redis
Redis基本数据类型Zset有序集合常用操作
2022/06/01 Redis