安装并使用PHPunit

Posted ivy-zheng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安装并使用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 8.2.2 by Sebastian Bergmann and contributors.) 
注意:PHPunit是有对应版本的最新的版的支持php7.* 官方建议我们安装最新版php,当然不一样要安装最新的只是如果你的版本是php6.*+最好下载最新的PHPunit

二、Windows下安装PHPunit

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

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

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

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

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

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

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

 C:\Users\username> phpunit --version 

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

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

三、编写测试

创建文件StackTest.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));
        
    
    ?>

进行测试

C:\Users\ivy>phpunit d:/project/test/test/StackTest.php
PHPUnit 8.2.2 by Sebastian Bergmann and contributors.

.                                                                   1 / 1 (100%)

Time: 2.61 seconds, Memory: 10.00 MB

OK (1 test, 5 assertions)

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

以上是关于安装并使用PHPunit的主要内容,如果未能解决你的问题,请参考以下文章

Composer 安装的 PHPUnit 二进制文件使用系统提供的 ResultPrinter 并失败

如何使用 PEAR 正确安装 PHPUnit?

通过 PEAR 安装 PHPUnit

PHPUnit 找不到类

PhpStorm 配置 PHPUnit

phpunit 单元测试之代码覆盖率