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 相关文章推荐
mysql 的 like 问题,超强毕杀记!!!
Jan 18 PHP
php在文件指定行中写入代码的方法
May 23 PHP
curl不使用文件存取cookie php使用curl获取cookie示例
Jan 26 PHP
PHP empty函数报错解决办法
Mar 06 PHP
PHP实现设计模式中的抽象工厂模式详解
Oct 11 PHP
PHP 实现判断用户是否手机访问
Jan 21 PHP
php从给定url获取文件扩展名的方法
Mar 14 PHP
php利用嵌套数组拼接与解析json的方法
Feb 07 PHP
PHP jpgraph库的配置及生成统计图表:折线图、柱状图、饼状图
May 15 PHP
PHP实现webshell扫描文件木马的方法
Jul 31 PHP
php写入mysql中文乱码的实例解决方法
Sep 17 PHP
php使用json-schema模块实现json校验示例
Sep 28 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 数组排序 array_multisort与uasort的区别
2011/03/24 PHP
迁移PHP版本到PHP7
2015/02/06 PHP
WordPress中用于获取及自定义头像图片的PHP脚本详解
2015/12/17 PHP
在js中使用&quot;with&quot;语句中跨frame的变量引用问题
2007/03/08 Javascript
juqery 学习之六 CSS--css、位置、宽高
2011/02/11 Javascript
jquery乱码与contentType属性设置问题解决方案
2013/01/07 Javascript
js加强的经典分页实例
2013/03/15 Javascript
JS实现时间格式化的方式汇总
2013/10/16 Javascript
将json对象转换为字符串的方法
2014/02/20 Javascript
JavaScript变量的作用域全解析
2015/08/14 Javascript
jQuery 添加样式属性的优先级别方法(推荐)
2017/06/08 jQuery
详解vue-cli 脚手架项目-package.json
2017/07/04 Javascript
浅谈js中的attributes和Attribute的用法与区别
2020/07/16 Javascript
快速解决element的autofocus失效问题
2020/09/08 Javascript
js实现拖拽与碰撞检测
2020/09/18 Javascript
nodejs中的异步编程知识点详解
2021/01/17 NodeJs
python使用正则搜索字符串或文件中的浮点数代码实例
2014/07/11 Python
Python使用time模块实现指定时间触发器示例
2017/05/18 Python
Python列表常见操作详解(获取,增加,删除,修改,排序等)
2019/02/18 Python
用pycharm开发django项目示例代码
2019/06/13 Python
Pycharm连接gitlab实现过程图解
2020/09/01 Python
爬虫代理的cookie如何生成运行
2020/09/22 Python
美国知名奢侈美容品牌零售商:Cos Bar
2017/04/21 全球购物
美国女性奢华品牌精品店:INTERMIX
2017/10/12 全球购物
软件测试面试题
2015/10/21 面试题
销售自我评价
2013/10/22 职场文书
结构工程个人自荐信范文
2013/11/30 职场文书
违纪检讨书2000字
2014/02/08 职场文书
中学生打架检讨书
2014/02/10 职场文书
会计专业求职信范文
2014/03/16 职场文书
四川省传达学习贯彻党的群众路线教育实践活动总结大会精神新闻稿
2014/10/26 职场文书
2014年教师业务工作总结
2014/12/19 职场文书
初三英语教学计划
2015/01/23 职场文书
MySQL表的增删改查(基础)
2021/04/05 MySQL
Java8中Stream的一些神操作
2021/11/02 Java/Android
win10电脑关机快捷键是哪个 win10快速关机的几种方法
2022/08/14 数码科技