| Prev | Next |
phpunit コマンドを実行すると、PHPUnit のコマンドライン版テストランナーが起動します。 コマンドラインのテストランナーを使用したテストの様子を以下に示します。
phpunit ArrayTest
PHPUnit 3.2.10 by Sebastian Bergmann.
..
Time: 0 seconds
OK (2 tests)
テストがひとつ実行されるたびに、PHPUnit コマンドラインツールはその経過を示す文字を出力します。
PHPUnit は、失敗 (failures) と エラー (errors) を区別します。 「失敗」は PHPUnit のアサーションに違反した場合、つまり例えば assertEquals() のコールに失敗した場合などで、 「エラー」は予期せぬ例外や PHP のエラーが発生した場合となります。 この区別は、時に有用です。というのは「エラー」は一般的に「失敗」 より修正しやすい傾向があるからです。 もし大量の問題が発生した場合は、まず「エラー」を最初に片付け、 その後で「失敗」を修正していくのが最良の方法です。
以下のコードで、コマンドライン版テストランナーのスイッチの一覧を見てみましょう。
phpunit --help
PHPUnit 3.2.10 by Sebastian Bergmann.
Usage: phpunit [switches] UnitTest [UnitTest.php]
--log-graphviz <file> Log test execution in GraphViz markup.
--log-json <file> Log test execution in JSON format.
--log-tap <file> Log test execution in TAP format to file.
--log-xml <file> Log test execution in XML format to file.
--log-metrics <file> Write metrics report in XML format.
--log-pmd <file> Write violations report in PMD XML format.
--coverage-html <dir> Generate code coverage report in HTML format.
--coverage-xml <file> Write code coverage information in XML format.
--test-db-dsn <dsn> DSN for the test database.
--test-db-log-rev <r> Revision information for database logging.
--test-db-prefix ... Prefix that should be stripped from filenames.
--test-db-log-info ... Additional information for database logging.
--testdox-html <file> Write agile documentation in HTML format to file.
--testdox-text <file> Write agile documentation in Text format to file.
--filter <pattern> Filter which tests to run.
--group ... Only runs tests from the specified group(s).
--exclude-group ... Exclude tests from the specified group(s).
--loader <loader> TestSuiteLoader implementation to use.
--repeat <times> Runs the test(s) repeatedly.
--tap Report test execution progress in TAP format.
--testdox Report test execution progress in TestDox format.
--no-syntax-check Disable syntax check of test source files.
--stop-on-failure Stop execution upon first error or failure.
--verbose Output more verbose information.
--wait Waits for a keystroke after each test.
--skeleton Generate skeleton UnitTest class for Unit in Unit.php.
--help Prints this usage information.
--version Prints the version and exits.
--configuration <file> Read configuration from XML file.
-d key[=value] Sets a php.ini value.
phpunit UnitTest
UnitTest という名前のクラスで定義されている テストを実行します。このクラスは、UnitTest.php という名前のファイルの中に定義されているものとします。
UnitTest は、PHPUnit_Framework_TestCase を継承したクラスであるか、あるいは PHPUnit_Framework_Test オブジェクト、例えば PHPUnit_Framework_TestSuite のインスタンスを返す public static suite() というメソッドを保持するクラスでなければなりません。
phpunit UnitTest UnitTest.php
UnitTest という名前のクラスで定義されているテストを実行します。 このクラスは、指定したファイルの中で定義されているものとします。
--log-graphviz
GraphViz のマークアップを使用して、テストの実行結果のログを作成します。 生成されたログファイルは、例えば dot などを使用して表示することが可能です。 詳細は 第 16 章 を参照ください。
このパラメータは、PEAR パッケージ Image_GraphViz がインストールされている場合にのみ使用可能となることに注意しましょう。
--log-json
--log-tap
Test Anything Protocol (TAP) フォーマットを使用して、テストの実行結果のログを作成します。 詳細は 第 16 章 を参照ください。
--log-xml
テストの実行結果を XML 形式のログファイルに出力します。 詳細は 第 16 章 を参照ください。
--log-metrics
テスト中のシステムに関するソフトウェアメトリクスを表す XML 形式のログファイルを作成します。
このパラメータは、tokenizer 拡張モジュールおよび Xdebug 拡張モジュールがインストールされている場合にのみ使用可能となることに注意しましょう。
--log-pmd
たとえばソフトウェアメトリクスなどにもとづいて、 特定の規則に違反しているものを表す XML 形式のログファイルを作成します。
このパラメータは、tokenizer 拡張モジュールおよび Xdebug 拡張モジュールがインストールされている場合にのみ使用可能となることに注意しましょう。
--coverage-xml
テスト結果から XML 形式のログファイルを作成し、 コードカバレッジ情報もそこに含めます。 詳細は 第 16 章 を参照ください。
このパラメータは、tokenizer 拡張モジュールおよび Xdebug 拡張モジュールがインストールされている場合にのみ使用可能となることに注意しましょう。
--coverage-html
コードカバレッジレポートを HTML 形式で作成します。 詳細は 第 14 章 を参照ください。
このパラメータは、tokenizer 拡張モジュールおよび Xdebug 拡張モジュールがインストールされている場合にのみ使用可能となることに注意しましょう。
--charset
--report で使用する文字セットを指定します。
--test-db-*
テストの結果やコードカバレッジデータをデータベースに書き込みます。 詳細は 第 16 章 を参照ください。
このパラメータは、PDO 拡張モジュールがインストールされている場合にのみ使用可能となることに注意しましょう。
--testdox-html および --testdox-text
実行したテストについて、HTML あるいはプレーンテキスト形式のドキュメントを生成します 詳細は 第 15 章 を参照ください。
--filter
指定したパターンにマッチする名前のテストのみを実行します。 パターンとして指定できるのは、単一のテスト名か、 あるいは複数のテスト名にマッチする 正規表現 です。
--group
指定したグループのテストのみを実行します。 あるテストを特定のグループに所属させるには、 @group アノテーションを使用します。
--exclude-group
指定したグループをテストの対象外とします。 あるテストを特定のグループに所属させるには、 @group アノテーションを使用します。
--loader
PHPUnit_Runner_TestSuiteLoader を実装したクラスのうち、 実際に使用するものを指定します。
標準のテストスイートローダーは、現在の作業ディレクトリおよび PHP の設定項目 include_path で指定されているディレクトリからソースファイルを探します。 PEAR の命名規則に従い、Project_Package_Class クラスがソースファイル Project/Package/Class.php に対応します。
--repeat
指定された回数だけ、繰り返しテストを実行します。
--no-syntax-check
テストのソースファイルの構文チェックを無効にします。
--tap
Test Anything Protocol (TAP) を使用して、テストの進行状況を報告します。 詳細は 第 16 章 を参照ください。
--testdox
テストの進行状況を、アジャイルな文書として報告します。 詳細は 第 15 章 を参照ください。
--verbose
より詳細な情報を出力します。例えば、 未完成のテストや省略したテストの名前が表示されます。
--wait
各テストが終了するたびにキー入力待ちの状態になります。これは、 テストランナーが終了すると同時にウィンドウが閉じてしまうような場合に便利です。
--skeleton
(UnitTest.php に記述された) Unit クラスに対して、テストケースクラス UnitTest の雛形を記述したファイル UnitTest.php を作成します。 詳細は 第 17 章 を参照ください。
--configuration
設定を XML ファイルから読み込みます。 詳細は 付録 B を参照ください。
-d
指定した PHP 設定オプションの値を設定します。
| Prev | Next |
Copyright © 2005-2011 Sebastian Bergmann.