2010-02-08 53 views
1

我正在建立一个构建系统,并希望在仪表板和构建失败电子邮件中的“项目报告”部分中显示构建失败的任务。CruiseControl.NET中报告失败的任务

目前我有三个任务:

  • SourceControl
  • 的MSBuild
  • 单元测试(使用gallio.echo从CC.Net EXEC任务)

如果其中一个后两个失败它不是从电子邮件或生成报告页面不明显哪个任务失败的构建。我需要通过日志来找出错误发生的位置。我想至少知道第一眼看不到什么任务。

这里是最好的CruiseControl的那样 - 在仪表板主页:

msbuild fail http://img38.imageshack.us/img38/1018/msbuildfail.png alt text http://img25.imageshack.us/img25/4688/galliofail.png

现在,这是不够的:

  1. 当您单击失败的任务是不可见在该构建的项目或构建报告上。

  2. 这些信息根本不在日志文件中。这意味着我无法通过黑客入侵XSL来将其收录到电子邮件中。

  3. 由于我的构建任务将是唯一的MSBuild任务,因此可以将其称为MSBuildTask。对于可执行任务,情况并非如此,因为我至少会有另外一两个可能会失败的情况。我需要给他们描述性的名字。我的Gallio exec任务有描述节点,但我不确定它在哪里使用。

    <exec>
    <description>Unit Tests</description>
    <executable>$(path.gallio)</executable>
    </exec>

回答

1

不是一个很好的解决方案,但是您可以使用目标上的OnError属性来记录某些东西,即使它必须有些静态。另一种选择是记录每个成功的步骤,然后使用XSL last()获取最后一个成功的步骤。它很糟糕,但它至少比以前更多。

+0

很酷,我会尽力去做。 – 2010-02-19 01:30:21

0

在我看来,你没有合并的MSBuild的和加利奥任务输出。我不记得我脑海中的正确语法(并且CruiseControl.NET网站似乎已关闭),但是如果您发布了您的配置文件,我可能会帮助您。

+0

是的,日志得到合并,它在'xmllogger'节点之前的'publishers'部分完成。所有来自msbuild和gallio任务的东西都会将其记录到日志文件中,这只是CruiseControl对此做的任何事情。 – 2010-02-09 22:07:38

3

我是ccnet的开发人员之一。问题已被记录。 http://jira.public.thoughtworks.org/browse/CCNET-1825

+0

太好了,谢谢你这样做。 – 2010-02-22 10:42:59

+0

问题已解决。从6910或更高版本构建。 您现在将看到仪表板和cctray中任务的描述。 如果有其他需要,请随时与我们联系。 http://groups.google。com/group/ccnet-user http://groups.google.com/group/ccnet-devel – Williams 2010-02-27 19:17:22