私はしたいと思います:
- 私の環境に関係なく、PHPUnit でテストを実行します (PHPUnit または PEAR がインストールされているかどうか)。
- 可能であればテスト結果を画面に表示する
これどうやってするの?ここでコードをダウンロードして含めようとしましたAutoload.php
が、まだいくつかの依存関係があります。たぶん、これを私のコードにバンドルしようとするよりも良いアプローチがあります...?
私はしたいと思います:
これどうやってするの?ここでコードをダウンロードして含めようとしましたAutoload.php
が、まだいくつかの依存関係があります。たぶん、これを私のコードにバンドルしようとするよりも良いアプローチがあります...?
プロジェクトのソース ファイルに PHPUnit を含めるには、次のガイドに従うことをお勧めします。
Using PHPUnit From a Git Checkout
PHPUnit Contributung セクションから。
インストールする必要があるすべてのパッケージについて説明し、phpunit 実行可能ファイルのランナー/ラッパー スクリプトをビルドする方法を示します。
#!/bin/bash
php -d include_path='.:../phpunit/:../dbunit/:../php-code-coverage/:../php-file-iterator/:../php-invoker/:../php-text-template/:../php-timer:../php-token-stream:../phpunit-mock-objects/:../phpunit-selenium/:../phpunit-story/:/usr/local/lib/php' ../phpunit/phpunit.php $*
必要に応じてパスを調整するか、別のスクリプトでラップしたい場合は、プログラムでphpunitを使用することもできます。
require '/path/to/phpunit/PHPUnit/Autoload.php';
PHPUnit_TextUI_Command::main();
phpunit.xml.dist
これは、ファイルがあること、またはラッパー スクリプトを呼び出すときに適切な cli パラメータを使用していることを前提としています。
git チェックアウトから作業する代わりに、pear パッケージを使用してすべての安定バージョンを解凍して、ディスクとリポジトリのスペースを節約することもできます。ラッパー スクリプトとすべてのインクルード パスの動作は同じです :)
関連する SO の質問:
依存関係は、使用しているアドオンに依存します。PHPUnit 自体は自己完結型である必要があります。PHP には特に一貫したパッケージ管理ソリューションがないため (そして、車輪の再発明以外の最も実行可能なオプションを排除したため)、アプリケーション コードとは別にソース ツリーにファイルを含めることが最善の策です。APPLICATION_ROOT などから、「test」という名前の兄弟ディレクトリを作成し、PHPUnit とそれに必要な依存関係でいっぱいの「lib」または同様のディレクトリを作成することは、おそらく良い計画です。テストディレクトリからメインアプリケーションソースへの重複や一方向の依存関係があってはなりません。
ヘルスチェックの自動テスト ページを探していると仮定しているので、そのテスト ディレクトリから必要なものを含む単一のページを作成できます。理想的には、静的リソースを公開する Web ディレクトリがある場合、ドキュメント ルートの外側からアプリケーション フォルダーを含めることで、アプリケーションのフロント コントローラーの読み込みを担当する PHP ファイルを作成できます。テストスイート。これにより、アプリケーション ディレクトリは、アプリケーション コード自体、テスト コードを格納するテスト ディレクトリ、コードベースのロードを担当する 2 つの小さなインクルード ファイル (任意の種類の共有定数定義など) に集中したままにすることができます。も抽出し、DRY に保ちます)。
PHP 用の一貫したパッケージ管理ソリューション ( http://getComposer.org ) があります。また、通常のコンポーザ スタイルで PHPunit をインストールする手段も追加されました ( http://packagist.org/packages/phpunit/phpunit )。
ソフトウェアをインストールすると、phpunit コマンド ライン スクリプトがローカルの 'bin/' ディレクトリに配置されるので、それを呼び出すことができますが、使用する構成ファイルを設定するシェル スクリプトが必要になる可能性があります。
通常の設定は、実際のテストを実行する PHPunit 拡張クラスの階層を持つ tests/ サブディレクトリです。