PHP單元測試使用

php與其餘語言不太同樣,單元測試須要本身安裝和配置,相對麻煩一點,不過單元測試對於提升庫的穩定性和健壯性仍是很是給力的,下面教你們怎麼配置PHP單元測試php

注意:php需升級到7.1版本以上html

 

配置說明

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/phpunitbootstrap

5.配置單元測試類提示,Languages & Frameworks > PHP > include path

如個人phpunit包本地的路徑爲/Users/chenqionghe/.composer/vendor/phpunitcomposer

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便可phpstorm

命令行的方式,進行項目目錄執行單元測試

phpunit tests/ArraysTest.php

  

2.執行全局單元測試

phpstorm方式測試

 

 

命令行方式,命令行下進入當前項目執行ui

phpunit

相關文章
相關標籤/搜索