検索
ホームページphp教程php手册PHPUnit コマンドラインテストツールのポケットガイド

  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格式的日志文件。

  下一个例子显示为ArrayTest中的测试生成的XML日志文件。

<?xml version="1.0" encoding="UTF-8"?>
<testsuites>
 <testsuite name="ArrayTest" tests="2" failures="0" errors="0" time="0.020026">
 <testcase name="testNewArrayIsEmpty" class="ArrayTest" time="0.014449"/>
 <testcase name="testArrayContainsAnElement" class="ArrayTest" time="0.005577"/>
</testsuite>
</testsuites>

  下面的XML日志文件是为名为FailureErrorTest的测试类两个测试生成的,一个是testFailure,一个是testError。这显示了失败和错误是如何分别表示的。

<?xml version="1.0" encoding="UTF-8"?>
<testsuites>
 <testsuite name="FailureErrorTest" tests="2" failures="1" errors="1" time="0.013603">
 <testcase name="testFailure" class="FailureErrorTest" time="0.011872">
 <failure message="" type="PHPUnit2_Framework_AssertionFailedError"></failure>
</testcase>
<testcase name="testError" class="FailureErrorTest" time="0.001731">
 <error message="" type="Exception"></error>
</testcase>
</testsuite>
</testsuites>
--loader

使用するテスト スイート ローダーを指定します。

標準テスト スイート ローダーは、現在の作業ディレクトリと PHP の include_path 構成ディレクティブで定義されたパスでソース ファイルを検索します。 PEAR の命名規則によれば、Project_Package_Class の形式でクラス名にマッピングされたソース ファイルは Project/Package/Class.php となります。

--skeleton

クラス Unit (ファイル Unit.php 内) に対して、UnitTest という名前のテスト ケース クラス (ファイル UnitTest.php 内) のスケルトンを生成します。元のクラスのメソッドごとに、未完了のテスト ケースが生成されたテスト ケース クラスに提供されます (本書の最後にある「未完了のテスト」セクションを参照)。

次の例は、Sample という名前のクラスのテスト クラス スケルトンを生成する方法を示しています。

phpunit --skeleton サンプル
PHPUnit 2.3.0 by Sebastian Bergmann.
Sample のテスト クラス スケルトンを
SampleTest.php.
phpunit SampleTest
に書き込みましたPHPUnit 2.3.0 by Sebastian Bergmann.
I
時間: 0.007268
不完全なテスト ケースが 1 つありました:
1) testSampleMethod(SampleTest)
OK、しかし不完全なテスト ケースです!!!
テスト実行: 1、不完全なテスト ケース: 1.

既存のコードのテストを作成する場合、次のような同じコード スニペットを多数繰り返す必要があります。

public function testSampleMethod( ) {}

PHPUnit は、既存のコードを分析し、テスト ケース クラスのフレームワークを生成するのに役立ちます。

--wait

各テストの終了時に、キーストロークを待ちます。これは、常にテストのみが実行されているウィンドウでテストを実行している場合に特に便利です。

ヒント: テスト対象のコードに PHP 構文エラーがある場合、テキスト インターフェイス テストはエラー メッセージを出力せずに直接終了します。標準のテスト スイート ローダーは、テスト スイートのソース ファイルに PHP 構文エラーがないかチェックしますが、テスト スイートに含まれるソース ファイルの構文エラーはチェックしません。 PHPUnit の将来のバージョンでは、サンドボックス化された PHP インタープリタ クラスを使用してこの問題に対処する予定です。



声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)