我们有一个 Phing 脚本,Hudson 使用它来构建/测试我们的 PHP 站点。
我们的一些单元测试会加载主函数库;其他人使用模拟来避免这样做(或为测试提供特定的伪造结果)。
单独运行时(即在命令行上,使用phpunit
),单元测试都可以完美运行。但是,当我们在 Phing 中将它们作为批处理一起运行时,会出现错误。
错误出现在我们为某些功能编写模拟的测试中。该错误表明我们要声明该函数两次。它显然是在尝试包含真正的函数库以及模拟。
测试包含互斥的代码,因此它们需要彼此隔离运行;看起来 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 彼此独立地运行测试,而无需在构建脚本中单独指定每个测试?