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生成静态页
Nov 25 PHP
基于PHP输出缓存(output_buffering)的深入理解
Jun 13 PHP
使用PHP强制下载PDF文件示例
Jan 17 PHP
php中的curl使用入门教程和常见用法实例
Apr 10 PHP
修改destoon会员公司的伪静态中的com目录的方法
Aug 21 PHP
ThinkPHP中pathinfo的访问模式、路径访问模式及URL重写总结
Aug 23 PHP
php禁止浏览器使用缓存页面的方法
Nov 07 PHP
简单介绍PHP非阻塞模式
Mar 03 PHP
php 生成加密公钥加密私钥实例详解
Jun 16 PHP
php判断电子邮件是否正确方法
Dec 04 PHP
Laravel框架实现调用百度翻译API功能示例
May 30 PHP
PHP后门隐藏的一些技巧总结
Nov 04 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 mysql实现mysql_select_db选择数据库
2016/12/30 PHP
Laravel框架使用技巧之使用url()全局函数返回前一个页面的地址方法详解
2020/04/06 PHP
基于socket.io和node.js搭建即时通信系统
2014/07/30 Javascript
四种参数传递的形式——URL,超链接,js,form表单
2015/07/24 Javascript
利用Angularjs和原生JS分别实现动态效果的输入框
2016/09/01 Javascript
jQuery中 $ 符号的冲突问题及解决方案
2016/11/04 Javascript
基于Phantomjs生成PDF的实现方法
2016/11/07 Javascript
JavaScript自定义函数实现查找两个字符串最长公共子串的方法
2016/11/24 Javascript
js数字舍入误差以及解决方法(必看篇)
2017/02/28 Javascript
js实现颜色阶梯渐变效果(Gradient算法)
2017/03/21 Javascript
基于HTML5+JS实现本地图片裁剪并上传功能
2017/03/24 Javascript
ES6中箭头函数的定义与调用方式详解
2017/06/02 Javascript
React Native之ListView实现九宫格效果的示例
2017/08/02 Javascript
this在vue和小程序中的使用详解
2019/01/28 Javascript
Vue.js 中的实用工具方法【推荐】
2019/07/04 Javascript
jQuery带控制按钮轮播图插件
2020/07/31 jQuery
numpy中索引和切片详解
2017/12/15 Python
wtfPython—Python中一组有趣微妙的代码【收藏】
2018/08/31 Python
python数据批量写入ScrolledText的优化方法
2018/10/11 Python
Python解析json时提示“string indices must be integers”问题解决方法
2019/07/31 Python
用Cython加速Python到“起飞”(推荐)
2019/08/01 Python
Django用户认证系统 Web请求中的认证解析
2019/08/02 Python
pandas的相关系数与协方差实例
2019/12/27 Python
浅谈Pytorch torch.optim优化器个性化的使用
2020/02/20 Python
jupyter notebook 参数传递给shell命令行实例
2020/04/10 Python
python自动生成sql语句的脚本
2021/02/24 Python
HTML5 b和i标记将被赋予真正的语义
2009/07/16 HTML / CSS
教师演讲稿范文
2014/01/08 职场文书
保密工作实施方案
2014/02/24 职场文书
刑事代理授权委托书
2014/09/17 职场文书
机关干部四风问题自我剖析及整改措施
2014/10/26 职场文书
2015年端午节国旗下演讲稿
2015/03/19 职场文书
入党积极分子党小组意见
2015/06/02 职场文书
2015年环卫处个人工作总结
2015/07/27 职场文书
golang通过递归遍历生成树状结构的操作
2021/04/28 Golang
java如何实现socket连接方法封装
2021/09/25 Java/Android