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 相关文章推荐
WINDOWS 2000下使用ISAPI方式安装PHP
Sep 05 PHP
一些 PHP 管理系统程序中的后门
Aug 05 PHP
php目录操作函数之获取目录与文件的类型
Dec 29 PHP
php中通过虚代理实现延迟加载的实现代码
Jun 10 PHP
php中将一段数据存到一个txt文件中并显示其内容
Aug 15 PHP
使用PHPMailer实现邮件发送代码分享
Oct 23 PHP
ThinkPHP实现动态包含文件的方法
Nov 29 PHP
学习php设计模式 php实现合成模式(composite)
Dec 08 PHP
php自定义函数转换html标签示例
Sep 29 PHP
PHP  实现等比压缩图片尺寸和大小实例代码
Oct 08 PHP
PHP+JS实现的实时搜索提示功能
Mar 13 PHP
php创建多级目录与级联删除文件的方法示例
Sep 12 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
使用gd库实现php服务端图片裁剪和生成缩略图功能分享
2013/12/25 PHP
php 读取输出其他文件的实现方法
2016/07/26 PHP
POST一个JSON格式的数据给Restful服务实例详解
2017/04/07 PHP
JavaScript 模式之工厂模式(Factory)应用介绍
2012/11/15 Javascript
左右悬浮可分组的网站QQ在线客服代码(可谓经典)
2012/12/21 Javascript
js数组操作学习总结
2013/11/04 Javascript
面向对象设计模式的核心法则
2013/11/10 Javascript
深入理解JavaScript系列(31):设计模式之代理模式详解
2015/03/03 Javascript
JavaScript中的ParseInt(&quot;08&quot;)和“09”返回0的原因分析及解决办法
2016/05/19 Javascript
jQuery图片前后对比插件beforeAfter用法示例【附demo源码下载】
2016/09/20 Javascript
微信小程序 window_x64环境搭建
2016/09/30 Javascript
Angular2库初探
2017/03/01 Javascript
微信小程序开发之选项卡(窗口底部TabBar)页面切换
2017/04/12 Javascript
浅谈react+es6+webpack的基础配置
2017/08/09 Javascript
微信小程序实现给嵌套template模板传递数据的方式总结
2017/12/18 Javascript
用react-redux实现react组件之间数据共享的方法
2018/06/08 Javascript
python基础教程之基本内置数据类型介绍
2014/02/20 Python
Python脚本在Appium库上对移动应用实现自动化测试
2015/04/17 Python
python中如何使用正则表达式的集合字符示例
2017/10/09 Python
Numpy掩码式数组详解
2018/04/17 Python
Python登录注册验证功能实现
2018/06/18 Python
python异步实现定时任务和周期任务的方法
2019/06/29 Python
python3读取csv文件任意行列代码实例
2020/01/13 Python
如何使用Python调整图像大小
2020/09/26 Python
python3实现语音转文字(语音识别)和文字转语音(语音合成)
2020/10/14 Python
Python之多进程与多线程的使用
2021/02/23 Python
IRO美国官网:法国服装品牌
2018/03/06 全球购物
Urban Outfitters德国官网:美国跨国生活方式零售公司
2018/05/21 全球购物
幼儿园小班评语
2014/04/18 职场文书
2014年百日安全生产活动总结
2014/05/04 职场文书
只用40行Python代码就能写出pdf转word小工具
2021/05/31 Python
Nginx部署vue项目和配置代理的问题解析
2021/08/04 Servers
Unicode中的CJK(中日韩统一表意文字)字符小结
2021/12/06 HTML / CSS
Python用any()函数检查字符串中的字母以及如何使用all()函数
2022/04/14 Python
MutationObserver在页面水印实现起到的作用详解
2022/07/07 Javascript
一文解答什么是MySQL的回表
2022/08/05 MySQL