2008-12-01 100 views
8

我正在寻找完整的解决方案来自动构建和测试PHP应用程序。我遇到了PhpUnderControl,这是一个用于运行Cruise Control周围创建的自动化应用程序构建的解决方案。巡航控制和PHP项目

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

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

我得到的唯一问题是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> 

这是复制粘贴+路径从巡航控制的示例项目改变。

任何人都请任何想法。

感谢

回答

2

我想知道如果巡航控制 能够合并由PHPUnit的 (以XML格式)创建登录到项目日志或者是 它的工作只有Java的JUnit的文件 。

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

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

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

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

(我没有用CC上的PHP项目,但我是CC的提交者之一。)

+0

感谢您花时间回答我的问题, 我的意思是'合并不工作'是指在第一次构建后没有在cc/logs/project目录下创建日志文件。 我重新开始并创建了一个新的config.xml文件,然后我开始工作。我想我以某种方式弄乱了配置文件。 – CountZero 2008-12-02 09:03:39

0

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

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

这可能是你的问题吗?

0

我们尝试使用PHPUc与CC,我们无法得到正确的东西。我们尝试了直接CC,但发现很难在那里获得认证(我们是分布式的,所以我们的报告将向全世界开放,除非我们确定了它 - 我们无法弄清楚。)

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

哈德森很容易建立,似乎与PHP所需的一切工作。

+0

由于我发布了这个,我们实际上确实让PHPuc与Cruise Control合作,并且非常流畅。我不是那个做的人,但显然它可以做到。我们有PHPUnit,PMD,CodeSniffer和指标图表的所有工作代码覆盖报告。所以有希望。 – 2010-01-09 01:09:19

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"/> 

一旦logfile.xml从PHPUnit测试生成显示在phpUnderControl和CC的测试标签中。