のテストでは、SeleniumとCurlを使用して、別の開発サーバーでページを開きます。サーバーBには、Webサイトを提供するApacheサーバーがあります。サーバーAはプロジェクトファイルを開発サーバーBに同期化(Rsync)してテストジョブを開始するので、プロジェクトファイルは両方のサーバーで同じになります。PHPで収集するリモートコードカバレッジ
PHPでコードカバレッジ統計情報をリモートで収集するには、どのような可能性がありますか?サーバBで
:我々はすでに(PHPUnitのがstart/stop collecting code coverage reportのでできる直接プロジェクトファイルを使用して)サーバーA上でローカルに実行ユニットテストでコードカバレッジを収集するために
アップデートをXdebugを使用している
Webサイトは、Apacheによって実行されるPHPインスタンスによってレンダリングされます。サーバーAのPHPインスタンスであるSelenium/Curlを使用してテストを実行すると、コマンドラインのバージョンが使用されます。そのインスタンスは、ユニットテスト(他のサーバーを使用していないとSelenium /カールを使用していない)を実行しているとき、私たちはこのようなコマンドを使用し、ApacheがサーバBに
を実行することをPHPのインスタンスをプロファイルすることはできません。
phpunit --coverage-html ./results/codecoverage/ ATestFile.php
これは、PHP CliのXdebugを使用して、 "ATestFile.php"のテストのコードカバレッジレポートを生成します。
あなたは今までに乗り越えた問題について具体的に説明できますか?サーバーBでもXDebugを起動できると思われるので、問題は何ですか? –
私の更新プログラムはあなたの質問に答えましたか?問題は、コードベース/プロジェクトファイルを使用してPHPインスタンスを実行するサーバーBの場合、サーバーAでコードカバレッジレポートを生成することです。 – HNygard
これは、サーバーAですべてのテストが実際に実行されているため、サーバーBでPHPUnitを実行したくないという点です。 XDebugは依然としてサーバーB上で動作します。PHPUnitを使用しないでください。私はこれがあなたを「生の」XDebugに晒すと思うので、PHPUnitがそこからデータを収集する方法を理解しなければなりません。興味があれば、XDebug以外のソリューションを提供することができます。このソリューションは、Bから(そしてあなたが気にしているシステムAから)カバレッジデータを収集できるようにします。 –