巡航控制和PHP项目

8
我正在寻找一个完整的解决方案来自动化构建和测试PHP应用程序。我发现了PhpUnderControl,这是一个围绕Cruise Control创建的运行自动化应用程序构建的解决方案。
不幸的是,PhpUC仍处于开发的早期阶段,我无法在Windows计算机上让它工作。
经过几个小时的尝试,我放弃了phpUc。现在我正在尝试单独使用Cruise Control。当涉及到运行整个构建过程时,它表现得非常好。我在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个回答

2
我在想Cruise Control是否能够将PHPUnit创建的日志(以XML格式)合并到项目日志中,还是仅适用于Java的JUnit文件。
CC将合并您指定的任何xml文件。 当您说合并文件不起作用时,您是因为合并它们出现错误还是测试结果未显示在结果页面上? 如果您查看构建日志文件,是否可以看到合并的测试结果?
您可能会遇到的一个问题是jsp报告应用程序中的.xsl文件期望测试结果按照ant junit任务创建的结构进行排列。 可能发生的情况是,您正在合并文件,但.xsl不知道如何显示结果。
但我认为有一个简单的解决方案。 PhpUnderControl项目提供了phpunit.jsp。 我认为,如果您将其添加到现有的CC安装中,您将能够查看测试结果。 您可以相当容易地将phpunit.jsp添加到选项卡中; 只需查看main.jsp即可明显。
如果您有任何后续问题,我建议使用CruiseControl {{link1:用户邮件列表}}。
(我在 PHP 项目中没有使用过 CC,但我是 CC 的贡献者之一。)

感谢您抽出时间回答我的问题,我所说的“合并不起作用”是指在第一次构建后,在cc/logs/project目录下没有创建任何日志文件。我重新开始并创建了新的config.xml文件,现在它可以正常工作。我想我可能在某种程度上弄乱了配置文件。 - CountZero

1

phpunit、phpUnderControl 和 CC 都非常好用!

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

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

一旦从phpunit生成logfile.xml,测试结果将显示在phpUnderControl和CC的测试选项卡中。


0

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

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

这可能是你的问题吗?


0

我们曾尝试使用PHPUc和CC,但无法使其正常工作。我们尝试了直接使用CC,但发现很难进行身份验证(我们是分布式的,所以如果不加以限制,我们的报告将对全世界开放——我们无法解决这个问题)。

因此,我们现在实际上使用Hudson作为我们的CI引擎,Phing作为我们的构建工具。它完全可以胜任。我们从PHPUnit中直接获得代码覆盖率报告(虽然Hudson仍然称之为Java世界的“Clover coverage”,但这只是一个链接名称,我们知道它的含义)。

Hudson易于设置,并且似乎可以与PHP所需的所有内容一起使用。


自从我发布了这篇文章以来,我们实际上已经成功将PHPuc与Cruise Control集成,并且一切都非常顺利。虽然不是我做的,但显然确实可以做到。我们已经成功使用PHPUnit、PMD、CodeSniffer和度量图表生成了代码覆盖率报告。所以还是有希望的。 - Sam McAfee

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接