PHPUnit コマンド ライン テスト ツールは、phpunit コマンドを通じて呼び出されます。次のコードは、PHPUnit コマンド ライン テスト ツールを通じてテストを実行する方法を示しています。
phpunitArrayTest
PHPUnit 2.3.0 by Sebastian Bergmann
時間: 0.067288
OK (2 テスト)
各テストについて、PHPUnit コマンド ライン テスト ツールはプロセスを示す文字を出力します。
· テストが成功すると、「.」が出力されます。
·テスト メソッドを実行すると、アサーション エラーが発生し、「F」が出力されます。
・テストメソッドを実行するとエラーが発生し、「E」が出力されます。
· テストが完了していないか、テストに「I」が出力されません (本書の最後にある「未完了のテスト」の章を参照)。
PHPUnit は失敗とエラーを区別できます。失敗は PHPUnit アサーション違反であり、エラーは予期しない例外または PHP エラーです。間違いは失敗よりも修正しやすいため、この区別が役立つ場合があります。問題のリストが長い場合は、まずすべてのエラーを解決してから、障害が残っているかどうかを確認することをお勧めします。
以下のコード コマンド ライン テスト ツール オプションの一部を見てみましょう:
phpunit --help
PHPUnit 2.3.0 (Sebastian Bergmann 著)
使用法: phpunit [スイッチ] UnitTest [UnitTest.php]
--coverage-data <file> コード カバレッジ データを生の形式でファイルに書き込みます。
--coverage-html <file> コード カバレッジ データを HTML 形式でファイルに書き込みます。
--coverage-text <file> コード カバレッジ データをテキスト形式でファイルに書き込みます。
--testdox-html <file> アジャイル ドキュメントを HTML 形式でファイルに書き込みます。
--testdox-text <file> アジャイル ドキュメントをテキスト形式でファイルに書き込みます。
--log-xml <ファイル> テストの進行状況を XML 形式でファイルに記録します。
--loader <loader> 使用する TestSuiteLoader 実装。
--skeleton Unit.php に Unit のスケルトン UnitTest クラスを生成します。
--wait 各テストの後にキーストロークを待ちます。
--help この使用法情報を出力します。
--version バージョンを出力して終了します。phpunit
UnitTest は
、ソース ファイル UnitTest.php で定義されるクラス UnitTest によって提供されるテストを実行します。
クラス UnitTest は、PHPUnit2_Framework_TestCase クラスを継承するか、パブリック静的メソッド スイートを提供して、PHPUnit2_Framework_Test オブジェクトのクラス (たとえば、クラス PHPUnit2_Framework_TestSuite のインスタンス) を返す必要があります。
phpunit UnitTest UnitTest.php は
、クラス UnitTest によって提供されるテストを実行します。指定されたソース ファイル (UnitTest.php) 内のコマンドで定義されます。
--coverage-data、--coverage-html、および --coverage-text は、
テストを実行するためのコード カバレッジ情報の分析と収集を制御します (本書の最後にある「コード カバレッジ分析」セクションを参照)
--testdox-html および--testdox- text は、
テストを実行するためのアジャイル ドキュメントを HTML またはプレーン テキスト形式で生成します (本書の最後にある「テストのその他の用途」の章を参照)
。--log-xml は、
テストを実行するためのログ ファイルを XML 形式で生成します。
次の例は、ArrayTest のテスト用に生成された XML ログ ファイルを示しています。
<?xml バージョン="1.0" エンコーディング="UTF-8"?>
<テストスイート>
<testsuite name="ArrayTest" testing="2" Failure="0"errors="0" time="0.020026">
<テストケース名="testNewArrayIsEmpty" class="ArrayTest" time="0.014449"/>
<testcase name="testArrayContainsAnElement" class="ArrayTest" time="0.005577"/>
</テストイト>
</testsuites>
次の XML ログ ファイルは、FailureErrorTest という名前のテスト クラスの 2 つのテスト (1 つは testFailure、もう 1 つは testError) に対して生成されます。これは、失敗とエラーがどのように個別に表現されるかを示しています。
<?xml バージョン="1.0" エンコーディング="UTF-8"?>
<テストスイート>
<testsuite name="FailureErrorTest" テスト="2" 失敗="1" エラー="1" 時間="0.013603">
<テストケース名="testFailure" クラス="FailureErrorTest" time="0.011872">
<失敗メッセージ="" type="PHPUnit2_Framework_AssertionFailedError"></failure>
</テストケース>
<テストケース名="testError" クラス="FailureErrorTest" time="0.001731">
<エラーメッセージ="" type="例外"></error>
</テストケース>
</テストイト>
</テストスイート>
--loader は、
使用するテスト スイート ローダーを指定します。
標準のテスト スイート ローダーは、現在の作業ディレクトリ内と、PHP の include_path 構成ディレクティブで定義されたパス内でソース ファイルを検索します。 PEAR の命名規則によれば、Project_Package_Class の形式でクラス名にマッピングされたソース ファイルは Project/Package/Class.php となります。
--skeleton は
、クラス Unit (ファイル Unit.php 内) の UnitTest というテスト ケース クラス (ファイル UnitTest.php 内) のスケルトンを生成します。元のクラスのメソッドごとに、未完了のテスト ケースが生成されたテスト ケース クラスに提供されます (本書の最後にある「未完了のテスト」セクションを参照)。
次の例は、Sample という名前のクラスのスケルトン テスト クラスを生成する方法を示しています。
phpunit --skeleton サンプル
Sebastian Bergmann による PHPUnit 2.3.0。
Sample のテスト クラス スケルトンを次のように作成しました。
サンプルテスト.php。
phpunit サンプルテスト
Sebastian Bergmann による PHPUnit 2.3.0。
私
時間: 0.007268
不完全なテスト ケースが 1 つありました:
1) テストサンプルメソッド(サンプルテスト)
OK、しかしテストケースは不完全です!!!
実行されるテスト: 1、不完全なテスト ケース: 1。
既存のコードのテストを作成する場合、次のような同じコード スニペットを多数繰り返す必要があります。
public function testSampleMethod( ) {}
PHPUnit は、既存のコードを分析して A を生成するのに役立ちます。テストケースクラスのフレームワーク。
--wait
各テストの終了時に、キーストロークを待ちます。これは、常にテストのみが実行されているウィンドウでテストを実行している場合に特に便利です。
ヒント: テスト対象のコードに PHP 構文エラーがある場合、テキスト インターフェイス テストはエラー メッセージを出力せずに直接終了します。標準のテスト スイート ローダーは、テスト スイートのソース ファイルに PHP 構文エラーがないかチェックしますが、テスト スイートに含まれるソース ファイルの構文エラーはチェックしません。 PHPUnit の将来のバージョンでは、サンドボックス化された PHP インタープリタ クラスを使用してこの問題に対処する予定です。