Cruise Control和PHP项目

时间:2008-12-01 11:05:32

标签: php unit-testing cruisecontrol

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

不幸的是,PhpUC还处于开发的早期阶段,我无法在Windows机器上工作。

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

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

我想知道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 个答案:

答案 0 :(得分:2)

  

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

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

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

但我认为这是一个简单的解决方案。 PhpUnderControl项目提供了一个phpunit.jsp。我想如果你将它添加到现有的CC安装中,你将能够查看测试结果。您可以非常轻松地将phpunit.jsp添加到选项卡中;看看main.jsp,它应该是显而易见的。

如果您有任何后续问题,我建议使用CruiseControl users mailing list

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

答案 1 :(得分: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的测试选项卡中。

答案 2 :(得分:0)

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

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

这可能是你的问题吗?

答案 3 :(得分:0)

我们尝试将PHPUc与CC结合使用,但我们无法正常使用。我们尝试使用直接CC,但发现很难在那里获得身份验证(我们已经分发,因此我们的报告将向全世界开放,除非我们将其钉死 - 我们无法弄明白。)

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

Hudson很容易设置,似乎可以处理PHP所需的一切。