次のフォルダー構造があります。
/main
/loader.php
/build.xml
/components
/package1
/class1.php
/package2
/class2.php
/tests
/package1
/class1.test.php
/package2
/class2.test.php
Web アプリケーションを実行するときはloader.php
、最初にロードし、 を呼び出して他のコンポーネントを含めますLoader::load( 'package_name' )
。次に、必要なすべてのファイルが含まれます。ここでの良い点はloader.php
、クラス ファイル内に を含める必要がないことですLoader
。
単体テスト クラスは、必要なすべてのクラスを明示的に含めることで、この動作をシミュレートします。なので、phingやPHPUnitでも問題ありません。
しかし今、phing と Xdebug を使用してカバレッジ レポートを生成したいと考えています。ここでの問題は、ping がすべての PHP ファイルをロードしてカバレッジ データベースを作成しているように見えることです。Loader
残念ながら、PHP ファイルで使用されているクラスが見つからないため、停止します。
すべてのクラス ファイルにステートメントを簡単に追加できinclude
ますが、コード カバレッジ分析がファイルを検査している場合にのみ、ファイルを含める方法があるのでしょうか?
その他のアイデア: 単体テスト ディレクトリをスキャンして、必要なすべてのインクルードを検出するようにカバレッジ分析を構成することもできます。次に、パターンなどに一致するクラスをフィルタリングする必要があります/Test$/i
。可能?