PHPサイトを構築/テストするためにHudsonが使用するPhingスクリプトがあります。
一部の単体テストでは、メイン関数ライブラリが読み込まれます。他の人は、そうする必要を避けるために(またはテストのために特定の偽の結果を提供するために)モックを使用します。
単体テストは、単独で実行すると(つまり、コマンドラインでを使用してphpunit
)、すべて完全に実行されます。ただし、Phingでバッチとして一緒に実行すると、エラーが発生します。
エラーは、特定の関数のモックを作成したテストにあります。エラーは、関数を2回宣言していることを示しています。明らかに、モックだけでなく実際の関数ライブラリも含めようとしています。
テストには相互に排他的なコードが含まれているため、互いに分離して実行する必要があります。Phingはそれらすべてを単一のプロセスで実行しているように見えるため、インクルードが衝突しています。
phingスクリプトの関連部分は次のようになります。
<phpunit haltonfailure="true" printsummary="true">
<batchtest>
<fileset dir="${ws}/path/to/site/root/">
<include name="*Test.php" />
<include name="*/*Test.php" />
<include name="*/*/*Test.php" />
<include name="*/*/*/*Test.php" />
</fileset>
</batchtest>
<formatter type="xml" todir="${builddir}/logs" outfile="units.xml" />
</phpunit>
ビルドスクリプトで各テストを個別に指定せずに、phingでテストを相互に独立して実行する方法はありますか?