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调用MySQL的存储过程的实现代码
Aug 12 PHP
php设计模式 Adapter(适配器模式)
Jun 26 PHP
开源php中文分词系统SCWS安装和使用实例
Apr 11 PHP
yii使用activeFileField控件实现上传文件与图片的方法
Dec 28 PHP
Symfony实现行为和模板中取得request参数的方法
Mar 17 PHP
thinkPHP中钩子的使用方法实例分析
Nov 16 PHP
PHP命令Command模式用法实例分析
Aug 08 PHP
PHP配置ZendOpcache插件加速
Feb 14 PHP
PHP创建文件及写入数据(覆盖写入,追加写入)的方法详解
Feb 15 PHP
PHP错误提示It is not safe to rely on the system……的解决方法
Mar 25 PHP
laravel入门知识点整理
Sep 15 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新手上路(十四)
2006/10/09 PHP
PHP IPV6正则表达式验证代码
2010/02/16 PHP
php读取文件内容的几种方法详解
2013/06/26 PHP
PHP自动识别字符集并完成转码详解
2013/08/02 PHP
php中cookie的使用方法
2014/03/29 PHP
php中print(),print_r(),echo()的区别详解
2014/12/01 PHP
TP5框架实现一次选择多张图片并预览的方法示例
2020/04/04 PHP
javascript 数组的方法集合
2008/06/05 Javascript
JavaScript 异步调用框架 (Part 4 - 链式调用)
2009/08/04 Javascript
JavaScript的类型简单说明
2010/09/03 Javascript
单击浏览器右上角的X关闭窗口弹出提示的小例子
2013/06/12 Javascript
ExtJS[Desktop]实现图标换行示例代码
2013/11/17 Javascript
JS对字符串编码的几种方式使用指南
2015/05/14 Javascript
js实现三张图(文)片一起切换的banner焦点图
2015/08/25 Javascript
深入了解JavaScript的逻辑运算符(与、或)
2016/12/20 Javascript
javascript 操作cookies详解及实例
2017/02/22 Javascript
鼠标经过出现气泡框的简单实例
2017/03/17 Javascript
js中的DOM模拟购物车功能
2017/03/22 Javascript
vue页面跳转后返回原页面初始位置方法
2018/02/11 Javascript
js replace 全局替换的操作方法
2018/06/12 Javascript
js 计算图片内点个数的示例代码
2019/04/04 Javascript
JavaScript 浏览器对象模型BOM原理与常见用法实例分析
2019/12/16 Javascript
[58:59]完美世界DOTA2联赛PWL S3 access vs CPG 第一场 12.13
2020/12/16 DOTA
Python实现合并两个有序链表的方法示例
2019/01/31 Python
python输入错误后删除的方法
2019/10/12 Python
flask实现验证码并验证功能
2019/12/05 Python
在python3中使用shuffle函数要注意的地方
2020/02/28 Python
Django之全局使用request.user.username的实例详解
2020/05/14 Python
Django vue前后端分离整合过程解析
2020/11/20 Python
css3 iphone玻璃透明气泡完美实现
2013/03/20 HTML / CSS
切尔西足球俱乐部官方网上商店:Chelsea FC
2019/06/17 全球购物
回门宴答谢词
2014/01/13 职场文书
婚礼父母答谢词
2015/01/04 职场文书
统计工作个人总结
2015/03/03 职场文书
捐款通知怎么写
2015/04/24 职场文书
入党积极分子半年考察意见
2015/06/02 职场文书