PHPUnit命令行測試工具是通過phpunit命令調用的。如下代碼顯示如何通過PHPUnit命令行測試工具運行測試。
phpunit ArrayTest
PHPUnit 2.3.0 by Sebastian Bergmann.
Time: 0.067288
OK (2 tests)
對每個測試,PHPUnit命令行測試工具打印一個字符表示進程:
·測試成功打印“.”。
·運行測試方法是發生了斷言失敗打印“F”。
·運行測試方法是發生了錯誤打印“E”。
·測試沒有完成或測試沒有實現打印“I”(見本書後“未完成的測試”一章)。
PHPUnit可以區分失敗和錯誤。一個失敗是PHPUnit的斷言違例,錯誤是一個意料外的異常或一個PHP錯誤。有時候這種差別是有用的,因為錯誤相比失敗更容易修正。如果你有一大串問題列表,最好先解決所有錯誤,然後看看有沒有失敗遺留下來。
讓我們看看如下一些代碼命令行測試工具的選項:
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
運行類UnitTest提供的測試,該類應該定義在源文件UnitTest.php中。
類UnitTest必須繼承PHPUnit2_Framework_TestCase類,或是提供了公有靜態方法suite,並返回PHPUnit2_ Framework_Test對象的類(例如,類PHPUnit2_Framework_TestSuite的一個實例)
phpunit UnitTest UnitTest.php
運行類UnitTest提供的測試,該類要定義在命令指定的源文件(UnitTest.php)中。
--coverage-data, --coverage-html, and --coverage-text
控制運行測試的代碼覆蓋信息的分析和集合(參見本書後代碼覆蓋分析一節)
--testdox-html and --testdox-text
以HTML或普通文本格式生成運行測試的敏捷文檔(參見本書後的“測試的其他用途”一章)
--log-xml
生成運行測試的XML格式的日志文件。