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 02 PHP
mysql数据库差异比较的PHP代码
Feb 05 PHP
利用PHP实现图片等比例放大和缩小的方法详解
Jun 06 PHP
php采用file_get_contents代替使用curl实例
Nov 07 PHP
php微信支付之APP支付方法
Mar 04 PHP
php实现通过cookie换肤的方法
Jul 13 PHP
php处理json格式数据经典案例总结
May 19 PHP
Zend Framework路由器用法实例详解
Dec 11 PHP
Yii2中datetime类的使用
Dec 17 PHP
PHP会话控制实例分析
Dec 24 PHP
PHP弱类型语言中类型判断操作实例详解
Aug 10 PHP
实现laravel 插入操作日志到数据库的方法
Oct 11 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
关于时间计算的结总
2006/12/06 PHP
PHP超级全局变量数组小结
2012/10/04 PHP
DOM XPATH获取img src值的query
2013/09/23 PHP
PHP获取指定函数定义在哪个文件中以及其所在的行号实例
2014/05/08 PHP
php抛出异常与捕捉特定类型的异常详解
2016/10/26 PHP
php生成静态页面并实现预览功能
2019/06/27 PHP
我也种棵OO树JXTree[js+css+xml]
2007/04/02 Javascript
网站被黑的假象--ARP欺骗之页面中加入一段js
2007/05/16 Javascript
用Javscript实现表单复选框的全选功能
2007/05/25 Javascript
Angular.js实现注册系统的实例详解
2016/12/18 Javascript
js实现复选框的全选和取消全选效果
2017/01/03 Javascript
jQuery导航条固定定位效果实例代码
2017/05/26 jQuery
深入理解Vue router的部分高级用法
2018/08/15 Javascript
vue自定义指令的创建和使用方法实例分析
2018/12/04 Javascript
Vue form表单动态添加组件实战案例
2019/09/02 Javascript
JavaScript代理模式原理与用法实例详解
2020/03/10 Javascript
vue实现匀速轮播效果
2020/06/29 Javascript
uniapp微信小程序:key失效的解决方法
2021/01/20 Javascript
[01:01]2020完美高校联赛(秋)西安落幕
2021/03/11 DOTA
Django Admin实现上传图片校验功能
2016/03/06 Python
Python 判断是否为质数或素数的实例
2017/10/30 Python
python GUI实例学习
2017/11/21 Python
Python集合基本概念与相关操作实例分析
2019/10/30 Python
python实现XML解析的方法解析
2019/11/16 Python
解决python中import文件夹下面py文件报错问题
2020/06/01 Python
python 使用多线程创建一个Buffer缓存器的实现思路
2020/07/02 Python
canvas实现圆绘制的示例代码
2019/09/11 HTML / CSS
工业设计毕业生自荐信
2014/04/13 职场文书
2014广电局实施党的群众路线教育实践活动方案思想汇报
2014/09/22 职场文书
党员贯彻十八大精神思想汇报范文
2014/10/25 职场文书
教师个人学习总结
2015/02/11 职场文书
综合测评自我评价
2015/03/06 职场文书
建筑工程催款函
2015/06/24 职场文书
logback如何自定义日志存储
2021/08/30 Java/Android
python代码实现扫码关注公众号登录的实战
2021/11/01 Python
海康机器人重磅发布全新算法开发平台VM4.2
2022/04/21 数码科技