PHP单元测试配置与使用方法详解

 更新时间:2019年12月27日 09:55:08   作者:雪山飞猪  
这篇文章主要介绍了PHP单元测试配置与使用方法,结合实例形式详细分析了PHP单元测试的具体安装、配置、使用方法及相关操作注意事项,需要的朋友可以参考下

本文实例讲述了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

5.配置单元测试类提示,Languages & Frameworks > PHP > include path

如我的phpunit包本地的路径为/Users/chenqionghe/.composer/vendor/phpunit

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即可

命令行的方式,进行项目目录执行

phpunit tests/ArraysTest.php

  

2.执行全局单元测试

phpstorm方式

 

命令行方式,命令行下进入当前项目执行

phpunit

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP错误与异常处理方法总结》、《php字符串(string)用法总结》、《PHP数组(Array)操作技巧大全》、《PHP运算与运算符用法总结》、《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《php面向对象程序设计入门教程》及《php优秀开发框架总结

希望本文所述对大家PHP程序设计有所帮助。

相关文章

  • PHP用PDO如何封装简单易用的DB类详解

    PHP用PDO如何封装简单易用的DB类详解

    PDO(php Data Object)是PHP的数据对象,它为PHP访问数据库提供了一种兼容一致的轻量级接口,也就是提供了一个数据库访问抽象层,这篇文章主要给大家介绍了关于PHP用PDO如何封装简单易用的DB类的相关资料,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-07-07
  • php 静态页面中显示动态内容

    php 静态页面中显示动态内容

    静态页面中显示动态内容,一些网站的qq在线状态,还有购物车用的是这个方法
    2009-08-08
  • 详解如何利用PHP和OpenCV来读取视频内容

    详解如何利用PHP和OpenCV来读取视频内容

    在现代科技发展中,无人机(Unmanned Aerial Vehicle, uav)已经成为了一种常见的飞行器,然而,无人机的使用也带来了一些安全和隐私方面的问题,本文将介绍如何利用PHP和OpenCV来读取视频内容,并通过图像处理技术来判断视频中是否存在无人机,感兴趣的朋友可以参考下
    2024-04-04
  • jQuery中的RadioButton,input,CheckBox取值赋值实现代码

    jQuery中的RadioButton,input,CheckBox取值赋值实现代码

    本篇文章主要是对jQuery中的RadioButton,input,CheckBox取值赋值实现代码进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2014-02-02
  • php使用codebase生成随机数

    php使用codebase生成随机数

    这篇文章主要介绍了php使用codebase生成随机数的示例,需要的朋友可以参考下
    2014-03-03
  • php需登录的文件上传管理系统

    php需登录的文件上传管理系统

    这篇文章主要介绍了php需登录的文件上传管理系统,文章中跟大家分享了一个很完整的php代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2015-10-10
  • php实现处理输入转义字符的代码

    php实现处理输入转义字符的代码

    这篇文章主要介绍了php实现处理输入转义字符的代码,需要的朋友可以参考下
    2015-11-11
  • 通过php删除xml文档内容的方法

    通过php删除xml文档内容的方法

    这篇文章主要介绍了通过php删除xml文档内容的方法,实例分析了两种删除XML文档的情况,并配有完整的注释,非常具有实用价值,需要的朋友可以参考下
    2015-01-01
  • php5中date()得出的时间为什么不是当前时间的解决方法

    php5中date()得出的时间为什么不是当前时间的解决方法

    从php5.10开始,php中加入了时区的设置,在php中显示的时间都是格林威治标准时间,这就造成了我们 中国的用户会差八个小时的问题!
    2008-06-06
  • phar绕过phar与HALT实现文件上传功能

    phar绕过phar与HALT实现文件上传功能

    这篇文章主要介绍了phar绕过phar与HALT实现文件上传功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2022-12-12

最新评论