8

我正在寻找一个完整的解决方案来自动“构建”和测试 PHP 应用程序。我遇到了 PhpUnderControl,这是一个运行围绕 Cruise Control 创建的自动化应用程序构建的解决方案。

不幸的是,PhpUC 仍处于开发的早期阶段,我无法让它在 windows box 上运行。

经过几个小时的尝试,我放弃了 phpUc。我现在正在尝试单独使用巡航控制。在运行整个构建过程时它工作得很好。我放入 ant 构建文件的每个命令都运行正常。

我遇到的唯一问题是 Cruise Control 不会将运行构建中的日志合并到项目日志文件中,因此我看不到任何构建结果。但是 Cruise control 中的示例项目工作正常,构建日志被合并到项目的日志中。

我想知道 Cruise Control 是否能够将 PHPUnit 创建的日志(以 XML 格式)合并到项目日志中,或者它是否仅适用于 Java 的 JUnit 文件。有没有人尝试在 php 项目中单独使用 Cruise Control?

这是项目配置(config.xml)的日志部分:

<log dir="logs/${project.name}">
<merge dir="projects/${project.name}/build/logs/"/>
</log>

这是从 Cruise Control 的示例项目更改的复制粘贴 + 路径。

任何想法请任何人。

谢谢

4

4 回答 4

2

我想知道 Cruise Control 是否能够将 PHPUnit 创建的日志(以 XML 格式)合并到项目日志中,或者它是否仅适用于 Java 的 JUnit 文件。

CC 将合并您指向的任何 xml 文件。当您说合并文件不起作用时,您是在合并它们时遇到错误还是测试结果没有显示在结果页面上?如果您查看构建日志文件,您是否看到合并的测试结果?

您可能会看到的一个问题是 jsp 报告应用程序中的 .xsl 文件期望测试结果位于 ant junit 任务创建的结构中。可能发生的情况是您正在合并文件,但 .xsl 不知道如何显示结果。

但我认为有一个简单的解决方案。PhpUnderControl 项目提供了一个 phpunit.jsp。我认为如果您将其添加到现有的 CC 安装中,您将能够查看测试结果。您可以很容易地将 phpunit.jsp 添加到选项卡中;只要看看 main.jsp 就应该很明显了。

如果您有任何后续问题,我推荐 CruiseControl用户邮件列表

(我没有在 PHP 项目中使用 CC,但我是 CC 提交者之一。)

于 2008-12-01T16:57:33.447 回答
1

phpunit、phpUnderControl 和 CC 工作得很好!

要在 phpunit xml 文件中的选项卡(带有 CC 的 phpUnderControl)中获取测试,请确保生成的 phpunit 日志文件位于正确的路径中

  <log type="junit" target="...../cruisecontrol-bin-2.8.4/projects/<projname>/build/logs/logfile.xml" logIncompleteSkipped="false"/>

从 phpunit 生成 logfile.xml 后,测试会显示在 phpUnderControl 和 CC 的测试选项卡中。

于 2012-02-05T10:43:45.523 回答
0

我们尝试将 PHPUc 与 CC 结合使用,但无法正常工作。我们尝试了直接 CC,但发现很难在其中获得身份验证(我们是分布式的,所以我们的报告将向全世界开放,除非我们确定它——我们无法弄清楚。)

所以,我们现在实际上使用 Hudson 作为我们的 CI 引擎和 Phing 作为我们的构建工具。它工作得很好。我们有直接来自 PHPUnit 的代码覆盖率报告(Hudson 在 Java 世界中仍将其称为“Clover 覆盖率”,但嘿,它只是一个链接的名称,我们知道它的含义)。

Hudson 易于设置,并且似乎可以处理 PHP 所需的一切。

于 2008-12-10T17:29:54.950 回答
0

我发现 CruiseControl 仅在测试失败时合并包含测试结果的日志。

当我故意破坏测试时,结果会合并到日志中,并显示在 CruiseControl 仪表板上。

那会是你的问题吗?

于 2008-12-03T11:01:36.333 回答