如果从旧版本 PHPUnit 升级,请阅读“从 PHPUnit 4.1 升级到 PHPUnit 4.2”一节。
PHPUnit 4.2 需要 PHP 5.3.3,强烈推荐使用最新版本的 PHP。
PHPUnit 需要使用以下扩展:dom、json、 pcre、 reflection 以及 spl。通常,这些扩展会被一并编译并默认启用。其中的某些甚至是根本无法禁用的。
如果需要支持代码覆盖率分析,需要 Xdebug 2.1.3,强烈推荐使用最新版本的 Xdebug。另外,代码覆盖率分析功能还需要有 tokenizer 扩展才能工作。 如果要将代码覆盖率信息以 XML 格式记录下来,需要有 xmlwriter 扩展。
要以 PHP 档案包(PHAR)方式使用 PHPUnit,需要 phar 扩展。
PHPUnit 的 PHAR 的 --self-update
功能需要
openssl 扩展才能工作。
如果使用了 Suhosin 扩展并同时希望以
PHP 档案包(PHAR)方式使用 PHPUnit,需要配置 suhosin.executor.include.whitelist = 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.json
文件中简单地加上对 phpunit/phpunit
的依赖关系即可。下面是一个最小化的 composer.json
文件的例子,只定义了一个对 PHPUnit 4.2 的开发时(development-time)依赖:
{ "require-dev": { "phpunit/phpunit": "4.2.*" } }
要通过 Composer 完成系统级的安装,可以运行:
composer global require "phpunit/phpunit=4.2.*"
请确保 path 变量中包含有 ~/.composer/vendor/bin/
。
有以下可选组件包可用:
PHP_Invoker
一个工具类,可以用带有超时限制的方式调用可调用内容。当需要在严格模式下保证测试的超时限制时,这个组件包是必须的。
PHPUnit 的 PHAR 分发中已经包含了此组件包。若要通过 Composer 安装此组件包,添加如下 "require-dev"
依赖项:
"phpunit/php-invoker": "*"
DbUnit
移植到 PHP/PHPUnit 上的 DbUnit 用于提供对数据库交互测试的支持。
PHPUnit 的 PHAR 分发中已经包含了此组件包。若要通过 Composer 安装此组件包,添加如下 "require-dev"
依赖项:
"phpunit/dbunit": ">=1.2"
PHPUnit_Selenium
将 Selenium RC 集成于 PHPUnit。
PHPUnit 的 PHAR 分发中已经包含了此组件包。若要通过 Composer 安装此组件包,添加如下 "require-dev"
依赖项:
"phpunit/phpunit-selenium": ">=1.2"