怎么在PHP中对单元测试进行配置

怎么在PHP中对单元测试进行配置?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

配置说明

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中对单元测试进行配置

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对亿速云的支持。