PHPunit安装及使用

安装并使用PHPunit

Linux 下安装PHPunit

PHP 档案包 (PHAR) 
    要获取 PHPUnit,最简单的方法是下载 PHPUnit 的 PHP 档案包 (PHAR),它将 PHPUnit 所需要的所有必要组件(以及某些可选组件)捆绑在单个文件中:

要使用 PHP档案包(PHAR)需要有 phar 扩展。

要使用 PHAR 的 –self-update 功能需要有 openssl 扩展。

如果启用了 Suhosin 扩展,需要在 php.ini 中允许执行 PHAR:

suhosin.executor.include.whitelist = phar 
    如果要全局安装 PHAR:

$ wget https://phar.phpunit.de/phpunit.phar
$ chmod +x phpunit.phar
$ chmod +x phpunit.phar
$ sudo mv phpunit.phar /usr/local/bin/phpunit
$ phpunit --version

PHPUnit x.y.z by Sebastian Bergmann and contributors. 
    也可以直接使用下载的 PHAR 文件:

$ wget https://phar.phpunit.de/phpunit.phar 
$ php phpunit.phar –version

PHPUnit x.y.z by Sebastian Bergmann and contributors.(笔者的版本是PHPUnit 5.7.4 by Sebastian Bergmann and contributors.) 
    注意:PHPunit是有对应版本的最新的版的支持php7.* 官方建议我们安装最新版php,当然不一样要安装最新的只是如果你的版本是php6.*+最好下载最新的PHPunit

Windows下安装PHPunit

    1. 为 PHP 的二进制可执行文件建立一个目录,例如 D:\Server\bin

    2. 将 D:\Server\bin 添加加到 PATH 环境变量中(这样PHPunit全局生效)

    3. 下载 https://phar.phpunit.de/phpunit.phar 并将文件保存到 C:\bin\phpunit.phar(注意下载下来一般是phpunitx.y.phar,带版本号的,名字要和下面命令执行的文件一直不然执行命令会找不到文件以至于提示could not open file ….)

    4. 打开命令行(例如,按 Windows+R » 输入 cmd » ENTER)

建立外包覆批处理脚本(最后得到 D:\Server\bin\phpunit.cmd):

C:\Users\username> cd D:Server\bin
C:\bin> echo @php "%~dp0phpunit.phar" %* > phpunit.cmd
C:\bin> exit

新开一个命令行窗口,确认一下可以在任意路径下执行 PHPUnit: <br>

C:\Users\username> phpunit --version

PHPUnit 5.7.4 by Sebastian Bergmann and contributors. 
      注:如果全局下不能运行,那就到之前生成的目录下运行试试,如:(还不行就是上述步骤出错了,仔细检查下)

C:\Users\username> cd D:Server\bin
 D:\Server\bin phpunit --version

编写测试

        注:这个文件创建上面生成批处理脚本的文件夹下 
        创建文件StackTest.php

<?php
use PHPUnit\Framework\TestCase;
   
class StackTest extends TestCase
    {
       
public function testPushAndPop()
        {
           
$stack = [];
           
$this->assertEquals(0, count($stack));

           
array_push($stack, 'foo');
           
$this->assertEquals('foo', $stack[count($stack)-1]);
           
$this->assertEquals(1, count($stack));

           
$this->assertEquals('foo', array_pop($stack));
           
$this->assertEquals(0, count($stack));
        }
    }
   
?><span class="php"><span class="hljs-preprocessor"><span class="hljs-keyword"><span class="hljs-title"><span class="hljs-title"><span class="hljs-title"><span class="hljs-class"><span class="hljs-keyword"><span class="hljs-title"><span class="hljs-keyword"><span class="hljs-title"><span class="hljs-keyword"><span class="hljs-function"><span class="hljs-keyword"><span class="hljs-title"><span class="hljs-params"><span class="hljs-variable"><span class="hljs-variable"><span class="hljs-number"><span class="hljs-variable"><span class="hljs-variable"><span class="hljs-string"><span class="hljs-variable"><span class="hljs-string"><span class="hljs-variable"><span class="hljs-variable"><span class="hljs-number"><span class="hljs-variable"><span class="hljs-number"><span class="hljs-variable"><span class="hljs-variable"><span class="hljs-string"><span class="hljs-variable"><span class="hljs-variable"><span class="hljs-number"><span class="hljs-variable"><span class="hljs-preprocessor"> </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>

进行测试

D:\Server\bin  phpunit StackTest.php
D:\Server\bin>phpunit login_test.php
    PHPUnit 5.7.4 by Sebastian Bergmann and contributors.

    .                                                                   1 / 1 (100%)

    Time: 134 ms, Memory: 8.00MB

    OK (1 test, 5 assertions)

PHPunit的安装和编写测试已经完成了。具体的操作请查看官方手册。官网手册

相关推荐