您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > PHPUnit
PHPUnit袖珍指南
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2013/7/2 11:10:12 ] 推薦標(biāo)簽:

  很長時(shí)間里,我對“你什么時(shí)候會為PHPUnit寫一個文檔”這個問題的回答是:“你不需要PHPUnit文檔,去讀讀JUnit文檔或買一本Junit的書,試一試用PHP和PHPUnit來重寫Java和Junit的例子”。當(dāng)我和O’Reilly德國辦公室的Barbara Weiss和Alexandra Follenius這樣說的時(shí)候,他們鼓勵我想想是不是可以寫一本書來作為PHPUnit的文檔。

  PHPUnit可以通過PHP擴(kuò)展和程序庫(PEAE)獲得。PEAR是可重用PHP組件的框架和分發(fā)系統(tǒng)。安裝PHPUnit可以通過PEAR安裝程序命令獲得:

pear install PHPUnit2

  根據(jù)PEAR的版本命名標(biāo)準(zhǔn),適用于PHP5的PHPUnit包稱為PHPUnit2。PHPUnit是適用于PHP4的包,這在本書后面關(guān)于“在PHP4中使用PHPUnit”一章會提到。

  安裝只有,能夠在本地的PEAR目錄中找到PHPUnit的源代碼,路徑通常是/usr/lib/ php/PHPUnit2。

  盡管使用PEAR安裝程序是PHPUnit支持的安裝方法,但你還是可以手工安裝。要手工安裝,參照以下做法:

  1.從http://pear.php.net/package/PHPUnit2/download下載PHPUnit發(fā)布包,然后解壓縮,確保目錄在php.ini定義的include_path中。

  2.準(zhǔn)備phpunit腳本

   a. 將pear-phpunit腳本改名為phpunit

   b. 將腳本中所有的@php_bin@改名為PHP命令行解釋器所在的目錄(通常為/usr/bin/ php)。

   c. 將此腳本拷貝到一個PATH環(huán)境變量所包含的目錄中,并將文件屬性改為可執(zhí)行(chmod +x phpunit)。

  3. 將PHPUnit2/ Runner/Version.php腳本中的所有@package_version@字符串替換為你所安裝的PHPUnit版本(如2.3.0)。

  PHPUnit命令行測試工具是通過phpunit命令調(diào)用的。如下代碼顯示如何通過PHPUnit命令行測試工具運(yùn)行測試。

phpunit ArrayTest
PHPUnit 2.3.0 by Sebastian Bergmann.

Time: 0.067288

OK (2 tests)

  對每個測試,PHPUnit命令行測試工具打印一個字符表示進(jìn)程:

  ·測試成功打印“.”。

  ·運(yùn)行測試方法是發(fā)生了斷言失敗打印“F”。

  ·運(yùn)行測試方法是發(fā)生了錯誤打印“E”。

  ·測試沒有完成或測試沒有實(shí)現(xiàn)打印“I”(見本書后“未完成的測試”一章)。

  PHPUnit可以區(qū)分失敗和錯誤。一個失敗是PHPUnit的斷言違例,錯誤是一個意料外的異;蛞粋PHP錯誤。有時(shí)候這種差別是有用的,因?yàn)殄e誤相比失敗更容易修正。如果你有一大串問題列表,好先解決所有錯誤,然后看看有沒有失敗遺留下來。

  讓我們看看如下一些代碼命令行測試工具的選項(xiàng):

phpunit --help
PHPUnit 2.3.0 by Sebastian Bergmann.

Usage: phpunit [switches] UnitTest [UnitTest.php]
--coverage-data <file> Write code-coverage data in raw format to file.
--coverage-html <file> Write code-coverage data in HTML format to file.
--coverage-text <file> Write code-coverage data in text format to file.
--testdox-html <file> Write agile documentation in HTML format to file.
--testdox-text <file> Write agile documentation in Text format to file.
--log-xml <file> Log test progress in XML format to file.
--loader <loader> TestSuiteLoader implementation to use.
--skeleton Generate skeleton UnitTest class for Unit in Unit.php.
--wait Waits for a keystroke after each test.
--help Prints this usage information.
--version Prints the version and exits.

  phpunit UnitTest

  運(yùn)行類UnitTest提供的測試,該類應(yīng)該定義在源文件UnitTest.php中。

  類UnitTest必須繼承PHPUnit2_Framework_TestCase類,或是提供了公有靜態(tài)方法suite,并返回PHPUnit2_ Framework_Test對象的類(例如,類PHPUnit2_Framework_TestSuite的一個實(shí)例)

上一頁12下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd