CWebTestCaseを拡張しようとしましたか? 通常、単体テストを作成するときは、必要なデータを提供するためのフィクスチャやものがありますが、ビューのテストと Web アプリの「機能」テストでは、ブラウザーを模倣し、Web アプリで次のようにアクションを実行させるのが一般的に最も簡単です。ユーザーが実際に使用していた場合。現在、この模倣は Selenium で最も簡単に行うことができます (私の意見では)。
Yii Guide on Functional Testingは、 Selenium Documentationと同様に開始するのに適した場所です。Selenium を使用したこの本もあります(最新版がそうであるかどうかはわかりませんが、発行日が 2010 年 8 月 11 日の以前のリリースは知っています)。Larry Ullman のYii Bookには、テストに関する章と彼がその章を完了したときの機能テストでの Selenium の使用。
お役に立てれば!
CWebTestCaseをさらに説明する更新
CWebTestCase はPHPUnit_Extensions_SeleniumTestCaseを拡張します。これは、ビューのテスト、ビュー内でのウィジェットの作成のテスト、テキストの存在のアサート、リンクの「クリック」などのために、phpunit 内で使用できる機能テスト基盤を直接実装します。これらのテストは、コマンドから引き続き実行されます。ただし、テストの実行時に Selenium-RC サーバーを起動する必要があり、有効なブラウザーが構成されている必要があります。有効なブラウザーは、setUp()
関数内に次のコードを配置するだけで構成できます。
$this->setBrowser('*firefox /usr/lib/firefox/firefox-bin');
CWebTestCase は PHPUnit_Extensions_SeleniumTestCase を拡張するため、CWebTestCase でコード カバレッジを提供できないという記述は正しくありません。
PHPUnit_Extensions_SeleniumTestCase は、Selenium を介して実行されるテストのコード カバレッジ情報を収集できます。
PHPUnit/Extensions/SeleniumTestCase/phpunit_coverage.php
Web サーバーのドキュメント ルート ディレクトリにコピーします。Web サーバーの php.ini 構成ファイルで、次のように構成します。
PHPUnit/Extensions/SeleniumTestCase/prepend.php
と
PHPUnit/Extensions/SeleniumTestCase/append.php
としてauto_prepend_file
およびauto_append_file
、それぞれ。を拡張するテスト ケース クラスではPHPUnit_Extensions_SeleniumTestCase
、次を使用します。
protected $coverageScriptUrl = 'http://host/phpunit_coverage.php';
スクリプトの URL を構成しますphpunit_coverage.php
。