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人民币金额数字转中文大写的函数代码
Feb 27 PHP
解析PHP处理换行符的问题 \r\n
Jun 13 PHP
解析PHP高效率写法(详解原因)
Jun 20 PHP
PHP修改session_id示例代码
Jan 08 PHP
PHP中批量生成静态html(命令行下运行PHP)
Apr 19 PHP
PHP 数组基本操作方法详解
Jun 17 PHP
PHP自定义错误用法示例
Sep 28 PHP
使用PHPExcel实现数据批量导出为excel表格的方法(必看)
Jun 09 PHP
关于php支持的协议与封装协议总结(推荐)
Nov 17 PHP
laravel实现登录时监听事件,添加登录用户的记录方法
Sep 30 PHP
PHP调用接口API封装的例子
Oct 11 PHP
php pdo连接数据库操作示例
Nov 18 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
抓取并下载CSS中所有图片文件的php代码
2011/09/26 PHP
php数据结构与算法(PHP描述) 查找与二分法查找
2012/06/21 PHP
Javascript 生成指定范围数值随机数
2009/01/09 Javascript
jQuery 技巧大全(新手入门篇)
2009/05/12 Javascript
jquery 问答知识整理
2010/02/11 Javascript
js 面向对象的技术创建高级 Web 应用程序
2010/02/25 Javascript
基于jQuery的试卷自动排版系统实现代码
2011/01/06 Javascript
JQuery 返回布尔值Is()条件判断方法代码
2012/05/14 Javascript
浅析jquery的js图表组件highcharts
2014/03/06 Javascript
基于JavaScript实现瀑布流效果(循环渐近)
2016/01/27 Javascript
纯JS焦点图特效实例(可一个页面多用)
2016/12/07 Javascript
JavaScript中日常收集常见的10种错误(推荐)
2017/01/08 Javascript
如何使用JS在HTML中自定义字符串格式化
2017/07/20 Javascript
浅析JS中常用类型转换及运算符表达式
2017/07/23 Javascript
javascript中神奇的 Date对象小结
2017/10/12 Javascript
jQuery实现炫丽的3d旋转星空效果
2018/07/04 jQuery
全面了解JavaScript的作用域链
2019/04/03 Javascript
三步实现ionic3点击退出app程序
2019/09/17 Javascript
微信小程序停止其他视频播放当前视频的实例代码
2019/12/25 Javascript
详解python使用Nginx和uWSGI来运行Python应用
2018/01/09 Python
python GUI库图形界面开发之PyQt5复选框控件QCheckBox详细使用方法与实例
2020/02/28 Python
2021年的Python 时间轴和即将推出的功能详解
2020/07/27 Python
python快速安装OpenCV的步骤记录
2021/02/22 Python
香港草莓网土耳其网站:Strawberrynet TR
2017/03/02 全球购物
Sunglass Hut巴西网上商店:男女太阳镜
2020/10/04 全球购物
关于Assembly命名空间的三个面试题
2015/07/23 面试题
大学生专业个人学习的自我评价
2013/10/26 职场文书
建材投资建议书
2014/05/16 职场文书
再婚婚前财产协议书范本
2014/10/19 职场文书
企业宣传稿范文
2015/07/23 职场文书
小学英语听课心得体会
2016/01/14 职场文书
2019新员工心得体会
2019/06/25 职场文书
python基于opencv批量生成验证码的示例
2021/04/28 Python
Django实现翻页的示例代码
2021/05/24 Python
MySQL系列之四 SQL语法
2021/07/02 MySQL
Java设计模式中的命令模式
2022/04/28 Java/Android