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 相关文章推荐
给apache2.2加上mod_encoding模块後 php5.2.0 处理url出现bug
Apr 12 PHP
解析使用substr截取UTF-8中文字符串出现乱码的问题
Jun 20 PHP
php 不使用js实现页面跳转
Feb 11 PHP
php读取目录所有文件信息dir示例
Mar 18 PHP
yii实现级联下拉菜单的方法
Jul 31 PHP
PHP封装CURL扩展类实例
Jul 28 PHP
php版微信自动获取收货地址api用法示例
Sep 22 PHP
php实现的统计字数函数定义与使用示例
Jul 26 PHP
laravel框架关于搜索功能的实现
Mar 15 PHP
使用PHP开发留言板功能
Nov 19 PHP
laravel通用化的CURD的实现
Dec 13 PHP
php的无刷新操作实现方法分析
Feb 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
ie与session丢失(新窗口cookie丢失)实测及解决方案
2013/07/15 PHP
thinkPHP学习笔记之安装配置篇
2015/03/05 PHP
thinkPHP5.0框架自动加载机制分析
2017/03/18 PHP
PHP程序员简单的开展服务治理架构操作详解(二)
2020/05/14 PHP
jquery 必填项判断表单是否为空的方法
2008/09/14 Javascript
利用js 进行输入框自动匹配字符的小例子
2013/06/29 Javascript
jquery.Ajax()方法调用Asp.Net后台的方法解析
2014/02/13 Javascript
node.js中的console用法总结
2014/12/15 Javascript
js实现刷新iframe的方法汇总
2015/04/27 Javascript
js 截取或者替换字符串中的数字实现方法
2016/06/13 Javascript
jquery删除table当前行的实例代码
2016/10/07 Javascript
Bootstrap基本组件学习笔记之按钮组(8)
2016/12/07 Javascript
Jquery树插件zTree实现菜单树
2017/01/24 Javascript
详解在 Angular 项目中添加 clean-blog 模板
2017/07/04 Javascript
Vue2 SSR渲染根据不同页面修改 meta
2017/11/20 Javascript
vue2.0 路由不显示router-view的解决方法
2018/03/06 Javascript
python中的全局变量用法分析
2015/06/09 Python
pandas 按照特定顺序输出的实现代码
2018/07/10 Python
带你彻底搞懂python操作mysql数据库(cursor游标讲解)
2020/01/06 Python
postman和python mock测试过程图解
2020/02/22 Python
Python matplotlib实时画图案例
2020/04/23 Python
使用Keras中的ImageDataGenerator进行批次读图方式
2020/06/17 Python
python pip如何手动安装二进制包
2020/09/30 Python
Python通过fnmatch模块实现文件名匹配
2020/09/30 Python
HTML5中原生的右键菜单创建方法
2016/06/28 HTML / CSS
佳能法国商店:Canon法国
2019/02/14 全球购物
FC-Moto美国:欧洲最大的摩托车服装和头盔商店之一
2019/08/24 全球购物
Can a struct inherit from another struct? (结构体能继承结构体吗)
2016/09/25 面试题
抄作业检讨书
2014/02/17 职场文书
毕业生工作求职信
2014/06/30 职场文书
注册资产评估专业求职信
2014/07/16 职场文书
合同意向书范本
2014/07/30 职场文书
设备技术员岗位职责
2015/04/11 职场文书
2016年会开场白台词
2015/06/01 职场文书
法制主题班会教案
2015/08/13 职场文书
诗词赏析-(浣溪沙)
2019/08/13 职场文书