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扩展介绍与开发教程
Aug 19 PHP
PHP读取网页文件内容的实现代码(fopen,curl等)
Jun 23 PHP
PHP多线程批量采集下载美女图片的实现代码(续)
Jun 03 PHP
php读取本地文件常用函数(fopen与file_get_contents)
Sep 09 PHP
curl不使用文件存取cookie php使用curl获取cookie示例
Jan 26 PHP
php 模拟 asp.net webFrom 按钮提交事件实例
Oct 13 PHP
ThinkPHP中公共函数路径和配置项路径的映射分析
Nov 22 PHP
PHP callback函数使用方法和注意事项
Jan 23 PHP
谈谈PHP连接Access数据库的注意事项
Aug 12 PHP
highchart数据源纵轴json内的值必须是int(详解)
Feb 20 PHP
php读取出一个文件夹及其子文件夹下所有文件的方法示例
Jun 15 PHP
详解PHP设计模式之依赖注入模式
May 25 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 递归效率分析
2009/11/24 PHP
PHP使用正则表达式获取微博中的话题和对象名
2015/07/18 PHP
Zend Framework动作助手Redirector用法实例详解
2016/03/05 PHP
strpos() 函数判断字符串中是否包含某字符串的方法
2019/01/16 PHP
php获取是星期几的的一些常用姿势
2019/12/15 PHP
关于javascript中的typeof和instanceof介绍
2012/12/04 Javascript
jquery及原生js获取select下拉框选中的值示例
2013/10/25 Javascript
利用cookie记住背景颜色示例代码
2013/11/04 Javascript
innerText 使用示例
2014/01/23 Javascript
JQuery和PHP结合实现动态进度条上传显示
2016/11/23 Javascript
详解jQuery简单的表格应用
2016/12/16 Javascript
BootStrap中的Fontawesome 图标
2017/05/25 Javascript
关于jquery layui弹出层的使用方法
2018/04/21 jQuery
JavaScript实现多张图片放大镜效果示例【不限定图片尺寸,rem单位】
2019/05/14 Javascript
微信小程序实现语音识别转文字功能及遇到的坑
2019/08/02 Javascript
vue使用showdown并实现代码区域高亮的示例代码
2019/10/17 Javascript
微信小程序自定义头部导航栏(组件化)
2019/11/15 Javascript
React中获取数据的3种方法及优缺点
2020/02/18 Javascript
Vue中通过属性绑定为元素绑定style行内样式的实例代码
2020/04/30 Javascript
Python是编译运行的验证方法
2015/01/30 Python
Python 常用string函数详解
2016/05/30 Python
python爬虫的工作原理
2017/03/05 Python
python+mongodb数据抓取详细介绍
2017/10/25 Python
对python-3-print重定向输出的几种方法总结
2018/05/11 Python
Python操作MySQL数据库的两种方式实例分析【pymysql和pandas】
2019/03/18 Python
Python3中的f-Strings增强版字符串格式化方法
2020/03/04 Python
python 发送邮件的四种方法汇总
2020/12/02 Python
CSS3盒子模型详解
2013/04/24 HTML / CSS
使用postMessage让 iframe自适应高度的方法示例
2019/10/08 HTML / CSS
意大利奢侈品零售商:ilDuomo Novara
2019/09/11 全球购物
土木建筑学生自我评价
2014/01/14 职场文书
模具专业自荐信
2014/05/29 职场文书
重温入党誓词主持词
2015/06/29 职场文书
2015中学学校工作总结
2015/07/20 职场文书
高中物理教学反思
2016/02/19 职场文书
导游词之宁夏贺兰山岩画
2019/11/08 职场文书