要獲取 PHPUnit,最簡單的方法是下載 PHPUnit 的 PHP 檔案包(PHAR),它將 PHPUnit 所須要的全部依賴組件(包括某些可選的組件)捆綁在單個文件中:php
wget https://phar.phpunit.de/phpunit.phar chmod +x phpunit.pharmv phpunit.phar /usr/local/bin/phpunit
固然,你也能夠下載後直接使用這個 PHAR:web
wget https://phar.phpunit.de/phpunit.pharphp phpunit.phar
若是你用 Composer 來管理項目的依賴關係,只須要簡單的在項目的 composer.json
文件中加上一個對 phpunit/phpunit
的依賴關係便可。下面是一個最小化的 composer.json
文件的例子,只定義了一個對 PHPUnit 4.0 的開發時(development-time)依賴:數據庫
{ "require-dev": { "phpunit/phpunit": "4.0.*" }}
要經過 Composer 完成系統級的安裝,能夠運行:json
composer global require 'phpunit/phpunit=4.0.*'
請確保 path 變量中包含有 ~/.composer/vendor/bin/
。composer
使用 PEAR 安裝程序來安裝 PHPUnit 只須要執行如下兩個指令(可能須要以 root
權限運行):框架
pear config-set auto_discover 1pear install pear.phpunit.de/PHPUnit
根據你的操做系統版本與PHP環境的具體狀況,有可能須要先安裝 PEAR 或者更新已安裝的 PEAR 以後才能按照這裏的指南來操做。ide
通常用 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
使用方法
安裝好以後進入到咱們測試的根目錄test目錄下,輸入phpunit,若是安裝成功,會出現使用說明:
固然,不少狀況輸入phpunit,會顯示command not found. 別急,解決方法:
輸入命令:
pear config-get bin_dir
會提示出咱們安裝後執行文件所在的目錄,記下這個地址,將其加入到系統的環境變量中:
export PATH=<dir you got from pear config-get>:$PATH
再次輸入phpunit會成功顯示上面的信息。
測試用例寫法
下面咱們來用一個例子說明具體如何將phpunit投入實際開發中,在test文件夾下新建一個test.php輸入代碼:
<?php
class StackTest extends PHPUnit_Framework_TestCase
{
public function testPushAndPop()
{
$stack = array();
$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));
}
?>
此部分收集了從 PHPUnit 3.7 升級到 PHPUnit 4.0 時可能遭遇的一些小的向後兼容問題。
升級應當是十分簡單且不會遭遇任何問題的,由於這個過程已經針對全部主要的開源框架進行過測試而且不存在任何問題。可是每一個項目畢竟是各有不一樣的,若是你已經嘗試了某個候選發佈版本而且遭遇到了問題,本文檔也許能提供一些幫助。