第 1 章 安装 PHPUnit

注意

PHPUnit 3.9 需要 PHP 5.4.7(或更高版本),强烈推荐 PHP 5.5.1(或更高版本)。

PHPUnit 使用了 PHP_CodeCoverage 这个库来收集与处理代码覆盖率信息。它依赖于 Xdebug 2.2.3(或更高版本),强烈推荐 Xdebug 2.3.0(或更高版本)。

PHP档案包(PHAR)

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

wget https://phar.phpunit.de/phpunit.phar 
chmod +x phpunit.phar
mv phpunit.phar /usr/local/bin/phpunit

当然,你也可以下载后直接使用这个 PHAR:

wget https://phar.phpunit.de/phpunit.phar
php phpunit.phar

Composer

如果你用 Composer 来管理项目的依赖关系,只需要简单的在项目的 composer.json 文件中加上一个对 phpunit/phpunit 的依赖关系即可。下面是一个最小化的 composer.json 文件的例子,只定义了一个对 PHPUnit 3.9 的开发时(development-time)依赖:

{
    "require-dev": {
        "phpunit/phpunit": "3.9.*"
    }
}

要通过 Composer 完成系统级的安装,可以运行:

composer global require 'phpunit/phpunit=3.9.*'

请确保 path 变量中包含有 ~/.composer/vendor/bin/

PEAR

使用 PEAR 安装程序来安装 PHPUnit 只需要执行以下两个指令(可能需要以 root 权限运行):

pear config-set auto_discover 1
pear install pear.phpunit.de/PHPUnit

小心

根据你的操作系统版本与PHP环境的具体情况,有可能需要先安装 PEAR 或者更新已安装的 PEAR 之后才能按照这里的指南来操作。

一般用 sudo pear upgrade PEAR 就能完成对已安装 PEAR 的升级。PEAR 手册则解说了如何对 PEAR 进行全新安装。

可选的组件包

有以下可选组件包可用:

DbUnit

移植到 PHP/PHPUnit 上的 DbUnit 用于提供对数据库交互测试的支持。

若要通过 PEAR 安装此组件包,使用如下指令:

pear install phpunit/DbUnit

若要通过 Composer 安装此组件包,添加如下 "require-dev" 依赖项:

"phpunit/dbunit": ">=1.2"
PHP_Invoker

一个工具类,可以用带有超时限制的方式调用可调用内容。当需要在严格模式下保证测试的超时限制时,这个组件包是必须的。

要安装此组件包,使用如下指令:

pear install phpunit/PHP_Invoker

若要通过 Composer 安装此组件包,添加如下 "require-dev" 依赖项:

"phpunit/php-invoker": "*"
PHPUnit_Selenium

将 Selenium RC 集成于 PHPUnit。

若要通过 PEAR 安装此组件包,使用如下指令:

pear install phpunit/PHPUnit_Selenium

若要通过 Composer 安装此组件包,添加如下 "require-dev" 依赖项:

"phpunit/phpunit-selenium": ">=1.2"
PHPUnit_Story

使用PHPUnit进行行为驱动开发时所使用的基于故事的测试运行器。

若要通过 PEAR 安装此组件包,使用如下指令:

pear install phpunit/PHPUnit_Story

若要通过 Composer 安装此组件包,添加如下 "require-dev" 依赖项:

"phpunit/phpunit-story": "*"
PHPUnit_SkeletonGenerator

一个工具,用于从成品代码类中生成骨架测试类,或反之。

要安装此组件包,使用如下指令:

pear install phpunit/PHPUnit_SkeletonGenerator
PHPUnit_TestListener_DBUS

一个发送事件给 DBUS 的测试监听器(TestListener)。

要安装此组件包,使用如下指令:

pear install phpunit/PHPUnit_TestListener_DBUS
PHPUnit_TestListener_XHProf

一个利用 XHProf 来对测试的代码进行自动性能剖析的测试监听器(TestListener)。

要安装此组件包,使用如下指令:

pear install phpunit/PHPUnit_TestListener_XHProf
PHPUnit_TicketListener_Fogbugz

一个与Fogbugz系统的问题API交互的任务单(ticket)监听器。

要安装此组件包,使用如下指令:

pear install phpunit/PHPUnit_TicketListener_Fogbugz
PHPUnit_TicketListener_GitHub

一个与GitHub系统的问题API交互的任务单(ticket)监听器。

要安装此组件包,使用如下指令:

pear install phpunit/PHPUnit_TicketListener_GitHub
PHPUnit_TicketListener_GoogleCode

一个与Google Code系统的问题API交互的任务单(ticket)监听器。

要安装此组件包,使用如下指令:

pear install phpunit/PHPUnit_TicketListener_GoogleCode
PHPUnit_TicketListener_Trac

一个与Trac系统的问题API交互的任务单(ticket)监听器。

要安装此组件包,使用如下指令:

pear install phpunit/PHPUnit_TicketListener_Trac

升级

此部分收集了从 PHPUnit 3.7 升级到 PHPUnit 3.9 时可能遭遇的一些小的向后兼容问题。

升级应当是十分简单且不会遭遇任何问题的,因为这个过程已经针对所有主要的开源框架进行过测试并且不存在任何问题。但是每个项目毕竟是各有不同的,如果你已经尝试了某个候选发布版本并且遭遇到了问题,本文档也许能提供一些帮助。

请在 GitHub 上 开启任务单 来对本页提出改进建议。万分感谢!