我通常使用 CruiseControl 进行 PHP 测试(使用 CC 的Phing支持,而不是 phpundercontrol)。我只与 Hudson 合作过一点点,但已经让 Hudson 使用 phing 的 phpunit 支持成功地记录了 phpunit 测试。
以下说明假设您将使用 Phing(而不是 Ant)来管理您的 PHP 项目构建,并且您已安装必要的先决条件。它还假设您安装了 PHPUnit 3(尽管 PHPUnit 2.x 也应该可以工作)。
第 1 步:为 Phing/PHPUnit 设置项目
首先,您需要确保您的项目可以使用 Phing 进行测试。这是一个运行单元测试并创建与 JUnit 兼容的 XML 输出的示例 Phing build.xml。
<?xml version="1.0" ?>
<project name="Test Project" default="test">
<property name="tests.dir" value="." />
<property name="reports.dir" value="${tests.dir}/reports" />
<target name="test" description="Run PHPUnit tests">
<phpunit haltonerror="true" haltonfailure="true" printsummary="true">
<batchtest>
<fileset dir="${tests.dir}">
<include name="**/*Test.php" />
</fileset>
</batchtest>
<formatter type="plain" usefile="false" />
<formatter type="xml" usefile="true" todir="${reports.dir}" outfile="test-results.xml" />
</phpunit>
</target>
</project>
第 2 步:设置 Hudson
- 为 Hudson 安装 Phing 插件。请注意,您可能需要将 Phing 作为独立包安装(我将其放在 /opt/phing-2.3.3 中)并在 Hudson 配置中配置 PHING_HOME 以指向该目录。您还应该能够使用 PEAR 安装的 Phing;但是,我还没有测试过。
- 配置 Hudson 以使用 Phing 构建您的项目。
- 配置 Hudson 以从您的项目中收集 JUnit 测试。我们的结果文件的名称是 test-results.xml。在上面的示例中,您将其配置为从报告/*.xml 收集文件。
第 3 步:构建!
那应该这样做。立即尝试构建您的项目。希望它会收集结果。
另请参阅此Phing 演示文稿,或此Phing 演示文稿以了解有关 Phing 和(在较小程度上)PHPUnit 集成的更多信息。
祝你好运!