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中创建并处理图象
Oct 09 PHP
搜索和替换文件或目录的一个好类--很实用
Oct 09 PHP
php 上传功能实例代码
Apr 13 PHP
php垃圾代码优化操作代码
Aug 05 PHP
深入理解PHP原理之错误抑制与内嵌HTML分析
May 02 PHP
php在window iis的莫名问题的测试方法
May 14 PHP
php操作mongoDB实例分析
Dec 29 PHP
php使用正则表达式获取图片url的方法
Jan 16 PHP
浅谈php中的循环while、do...while、for、foreach四种循环
Nov 05 PHP
[原创]php token使用与验证示例【测试可用】
Aug 30 PHP
PHP设计模式之适配器模式原理与用法分析
Apr 25 PHP
php字符串函数 str类常见用法示例
May 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.ini以达到屏蔽错误信息并记录日志
2013/06/16 PHP
解析PHP中ob_start()函数的用法
2013/06/24 PHP
PHP中list()函数用法实例简析
2016/01/08 PHP
PHP XML和数组互相转换详解
2016/10/26 PHP
PHP版微信小店接口开发实例
2016/11/12 PHP
微信公众平台开发(五) 天气预报功能开发
2016/12/03 PHP
PHP有序表查找之插值查找算法示例
2018/02/10 PHP
JQuery Dialog的内存泄露问题解决方法
2010/06/18 Javascript
javascript中String类的subString()方法和slice()方法
2011/05/24 Javascript
jQuery图片预加载 等比缩放实现代码
2011/10/04 Javascript
Javascript实现通过选择周数显示开始日和结束日的实现代码
2016/05/30 Javascript
BootStrap下jQuery自动完成的样式调整
2016/05/30 Javascript
JS实现页面载入时随机显示图片效果
2016/09/07 Javascript
zTree jQuery 树插件的使用(实例讲解)
2017/09/25 jQuery
JS在if中的强制类型转换方式
2018/07/15 Javascript
JavaScript数组、json对象、eval()函数用法实例分析
2019/02/21 Javascript
Vue渲染过程浅析
2019/03/14 Javascript
微信小程序实现简单的select下拉框
2020/11/23 Javascript
jQuery实现穿梭框效果
2021/01/19 jQuery
[09:37]2018DOTA2国际邀请赛寻真——不懈追梦的Team Serenity
2018/08/13 DOTA
Python3实现的腾讯微博自动发帖小工具
2013/11/11 Python
使用scrapy实现爬网站例子和实现网络爬虫(蜘蛛)的步骤
2014/01/23 Python
对dataframe进行列相加,行相加的实例
2018/06/08 Python
python+selenium 定位到元素,无法点击的解决方法
2019/01/30 Python
Python any()函数的使用方法
2019/10/28 Python
tensorflow 固定部分参数训练,只训练部分参数的实例
2020/01/20 Python
python数据预处理方式 :数据降维
2020/02/24 Python
Python如何获取文件指定行的内容
2020/05/27 Python
Python 中Operator模块的使用
2021/01/30 Python
澳大利亚的奢侈品牌:Oroton
2016/08/26 全球购物
亚马逊西班牙购物网站:amazon西班牙
2017/03/06 全球购物
英国顶级足球鞋的领先零售商:Lovell Soccer
2019/08/27 全球购物
创业计划书的写作技巧及要点
2014/01/31 职场文书
亲子阅读的活动方案
2014/08/15 职场文书
草系十大最强宝可梦,纸片人上榜,榜首大家最熟悉
2022/03/18 日漫
《地。-关于地球的运动-》单行本第七集上市,小说家朝井辽献上期待又害怕的推荐文
2022/03/31 日漫