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 相关文章推荐
杏林同学录(八)
Oct 09 PHP
PHP 加密/解密函数 dencrypt(动态密文,带压缩功能,支持中文)
Jan 30 PHP
最新用php获取谷歌PR值算法,附上php查询PR值代码示例
Dec 25 PHP
PHP json格式和js json格式 js跨域调用实现代码
Sep 08 PHP
国产PHP开发框架myqee新手快速入门教程
Jul 14 PHP
PHP return语句另类用法不止是在函数中
Sep 17 PHP
PHP Reflection API详解
May 12 PHP
php post大量数据时发现数据丢失问题解决方法
Jun 20 PHP
PHP处理二进制数据的实现方法
Jun 13 PHP
PHP设计模式之适配器模式原理与用法分析
Apr 25 PHP
Yii2语言国际化自动配置详解
Aug 22 PHP
Laravel手动返回错误码示例
Oct 22 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
JSON在PHP中的应用介绍
2012/09/08 PHP
php生成高清缩略图实例详解
2015/12/07 PHP
PHP设计模式之命令模式示例详解
2020/12/20 PHP
js 与或运算符 || &amp;&amp; 妙用
2009/12/09 Javascript
理解JavaScript中的对象 推荐
2011/01/09 Javascript
Jquery实现的一种常用高亮效果示例代码
2014/01/28 Javascript
node.js中的fs.fchmodSync方法使用说明
2014/12/16 Javascript
JS实现网站菜单拖拽移位效果的方法
2015/09/24 Javascript
JavaScript中ES6 Babel正确安装过程
2016/07/18 Javascript
基于vue的下拉刷新指令和滚动刷新指令
2016/12/23 Javascript
在Vue组件中获取全局的点击事件方法
2018/09/06 Javascript
vue缓存的keepalive页面刷新数据的方法
2019/04/23 Javascript
实现elementUI表单的全局验证的方法步骤
2019/04/29 Javascript
elementUI 动态生成几行几列的方法示例
2019/07/11 Javascript
vue子组件改变父组件传递的prop值通过sync实现数据双向绑定(DEMO)
2020/02/01 Javascript
javascript将16进制的字符串转换为10进制整数hex
2020/03/05 Javascript
python实现将英文单词表示的数字转换成阿拉伯数字的方法
2015/07/02 Python
深入理解Python中的*重复运算符
2017/10/28 Python
Python实现的计数排序算法示例
2017/11/29 Python
numpy使用技巧之数组过滤实例代码
2018/02/03 Python
Python cookbook(数据结构与算法)实现对不原生支持比较操作的对象排序算法示例
2018/03/15 Python
Python2和Python3中urllib库中urlencode的使用注意事项
2018/11/26 Python
从Pytorch模型pth文件中读取参数成numpy矩阵的操作
2021/03/04 Python
意大利制造的西装、衬衫和针对男士量身定制的服装:Lanieri
2018/04/08 全球购物
法国一家多品牌成衣精品中/高档商店:Graduate Store
2019/08/28 全球购物
荷兰美妆护肤品海淘网站:Beautinow(中文)
2020/11/22 全球购物
年度考核自我鉴定
2013/11/09 职场文书
测绘专业大学生职业生涯规划书
2014/02/10 职场文书
高中军训第一天感言
2014/03/06 职场文书
岗位职责说明书模板
2014/07/30 职场文书
郭明义电影观后感
2015/06/08 职场文书
职工趣味运动会开幕词
2016/03/04 职场文书
聊聊pytorch测试的时候为何要加上model.eval()
2021/05/23 Python
如何用PHP实现分布算法之一致性哈希算法
2021/05/26 PHP
Win11怎么添加用户?Win11添加用户账户的方法
2022/07/15 数码科技
vue实现简易音乐播放器
2022/08/14 Vue.js