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 相关文章推荐
在字符串中把网址改成超级链接
Oct 09 PHP
实用函数2
Nov 08 PHP
smarty section简介与用法分析
Oct 03 PHP
php获取文件大小的方法
Feb 26 PHP
destoon出现验证码不显示时的紧急处理方法
Aug 22 PHP
PHP+MYSQL中文乱码问题
Jul 01 PHP
php简单复制文件的方法
May 09 PHP
PHP引用返回用法示例
May 28 PHP
laravel中短信发送验证码的实现方法
Apr 25 PHP
PHP各种常见经典算法总结【排序、查找、翻转等】
Aug 05 PHP
Laravel框架实现的上传图片到七牛功能详解
Sep 06 PHP
php 多继承的几种常见实现方法示例
Nov 18 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/10/30 PHP
在mysql数据库原有字段后增加新内容
2009/11/26 PHP
PHP最常用的2种设计模式工厂模式和单例模式介绍
2012/08/14 PHP
微信支付开发发货通知实例
2016/07/12 PHP
PHP7多线程搭建教程
2017/04/21 PHP
laravel通过a标签从视图向控制器实现传值
2019/10/15 PHP
如何通过PHP实现Des加密算法代码实例
2020/05/09 PHP
用js+xml自动生成表格的东西
2006/12/21 Javascript
JavaScript 指导方针
2007/04/05 Javascript
jQuery autocomplete插件修改
2009/04/17 Javascript
浅谈js的setInterval事件
2014/12/05 Javascript
Bootstrap常用组件学习(整理)
2017/03/24 Javascript
angularJs中$http获取后台数据的实例讲解
2018/08/08 Javascript
webpack4 入门最简单的例子介绍
2018/09/05 Javascript
详解ES6系列之私有变量的实现
2018/11/21 Javascript
vue+element-ui+axios实现图片上传
2019/08/20 Javascript
JS中的继承操作实例总结
2020/06/06 Javascript
Python中的choice()方法使用详解
2015/05/15 Python
Python图算法实例分析
2016/08/13 Python
Python编程使用NLTK进行自然语言处理详解
2017/11/16 Python
Python json模块dumps、loads操作示例
2018/09/06 Python
TensorFlow实现Logistic回归
2018/09/07 Python
Python for循环与getitem的关系详解
2020/01/02 Python
后端开发使用pycharm的技巧(推荐)
2020/03/27 Python
HTML5 Canvas像素处理使用接口介绍
2012/12/02 HTML / CSS
手工制作的意大利礼服鞋:Ace Marks
2018/12/15 全球购物
C,C++的几个面试题小集
2013/07/13 面试题
英文版餐饮业求职信
2013/10/18 职场文书
女大学生个人求职信
2013/12/09 职场文书
铁路个人事迹材料
2014/01/30 职场文书
《地震中的父与子》教学反思
2014/04/10 职场文书
2014年组织委员工作总结
2014/12/01 职场文书
你喜欢篮球吗?Python实现篮球游戏
2021/06/11 Python
MySQL修炼之联结与集合浅析
2021/10/05 MySQL
Python可视化学习之matplotlib内置单颜色
2022/02/24 Python
Python echarts实现数据可视化实例详解
2022/03/03 Python