English 中文(简体)
巡航控制和 PHP 项目
原标题:
  • 时间:2008-12-01 11:05:31
  •  标签:

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

很遗憾,PhpUC仍处于开发的早期阶段,我不能让它在Windows Box上运行。

经过几个小时的尝试,我放弃了对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的示例项目中复制并更改路径。

请问有什么想法吗?

谢谢 (xiè xiè)

问题回答

I m wondering if Cruise Control is able to merge logs created by PHPUnit (in XML format) into project log or is it working for Java s JUnit files only.

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

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

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

如果您有任何后续问题,我建议使用CruiseControl用户邮件列表

我没有在PHP项目中使用CC,但我是CC的代码贡献者之一。

PHPUnit、PHP UnderControl 和 CC 都非常棒!

为了在tab中获取测试结果(使用带有CC的phpUnderControl),请确保生成的phpunit日志文件位于正确的路径中。

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

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

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

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

那可能是你的问题吗?

我们试着用PHPUc和CC一起,但是我们无法正确运作。我们尝试用直接的CC,但很难进行身份验证(我们是分布式的,所以我们的报告会面向全世界开放,除非我们把它锁死,但我们没想出方法)。

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

Hudson很容易设置并且似乎能够与所有PHP所需的东西一起运行。





相关问题
热门标签