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模拟HTTP认证
Oct 09 PHP
php 模拟GMAIL,HOTMAIL(MSN),YAHOO,163,126邮箱登录的详细介绍
Jun 18 PHP
php模拟服务器实现autoindex效果的方法
Mar 10 PHP
php中文繁体和简体相互转换的方法
Mar 21 PHP
Yii基于数组和对象的Model查询技巧实例详解
Dec 28 PHP
详解WordPress开发中用于获取分类及子页面的函数用法
Jan 08 PHP
PHP并发多进程处理利器Gearman使用介绍
May 16 PHP
PHP中加速、缓存扩展的区别和作用详解(eAccelerator、memcached、xcache、APC )
Jul 09 PHP
php 伪造HTTP_REFERER页面URL来源的三种方法
Sep 22 PHP
php实现在线考试系统【附源码】
Sep 18 PHP
php生成word并下载代码实例
Mar 15 PHP
使用composer 安装 laravel框架的方法图文详解
Aug 02 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
PHPMyAdmin 快速配置方法
2009/05/11 PHP
用PHP获取Google AJAX Search API 数据的代码
2010/03/12 PHP
PHP怎样用正则抓取页面中的网址
2016/08/09 PHP
js获取单元格自定义属性值的代码(IE/Firefox)
2010/04/05 Javascript
JQuery入门——用bind方法绑定事件处理函数应用介绍
2013/02/05 Javascript
解析Jquery中如何把一段html代码动态写入到DIV中(实例说明)
2013/07/09 Javascript
JavaScript通过字符串调用函数的实现方法
2015/03/18 Javascript
JavaScript使用DeviceOne开发实战(三)仿微信应用
2015/12/02 Javascript
BootStrap入门教程(二)之固定的内置样式
2016/09/19 Javascript
小程序实现发表评论功能
2018/07/06 Javascript
微信小程序实现tab左右切换效果
2020/11/15 Javascript
基于JavaScript 实现拖放功能
2019/09/12 Javascript
Vue中错误图片的处理的实现代码
2019/11/07 Javascript
JavaScript字符和ASCII实现互相转换
2020/06/03 Javascript
Python守护进程和脚本单例运行详解
2017/01/06 Python
matplotlib 输出保存指定尺寸的图片方法
2018/05/24 Python
python实现逆序输出一个数字的示例讲解
2018/06/25 Python
Sanic框架异常处理与中间件操作实例分析
2018/07/16 Python
Python3实现的简单工资管理系统示例
2019/03/12 Python
Python中dict和set的用法讲解
2019/03/28 Python
Python2与Python3的区别点整理
2019/12/12 Python
Pycharm激活码激活两种快速方式(附最新激活码和插件)
2020/03/12 Python
python爬取天气数据的实例详解
2020/11/20 Python
HTML5组件Canvas实现图像灰度化(步骤+实例效果)
2013/04/22 HTML / CSS
英国日常交易网站:Wowcher
2018/09/04 全球购物
项目经理岗位职责
2013/11/11 职场文书
分公司经理岗位职责
2013/11/11 职场文书
应届护士推荐信
2013/11/16 职场文书
《颐和园》教学反思
2014/02/26 职场文书
协议书模板
2014/04/23 职场文书
中药学专业毕业生推荐信
2014/07/10 职场文书
小学庆六一活动总结
2014/08/28 职场文书
售后服务承诺函格式
2015/01/21 职场文书
店长岗位职责
2015/02/11 职场文书
中班下学期个人工作总结
2015/02/12 职场文书
nginx的zabbix 5.0安装部署的方法步骤
2021/07/16 Servers