在CruiseControl.NET中报告失败的任务

时间:2010-02-08 22:58:53

标签: msbuild build-process cruisecontrol.net gallio

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

目前我有三个任务:

  • SourceControl
  • MSBUILD
  • 单元测试(使用来自CC.Net exec任务的gallio.echo)

如果后两者中的任何一个失败,则在电子邮件或构建报告页面中哪个任务未通过构建失败并不明显。我需要通过日志来找出错误发生的位置。我想至少知道第一眼就失败了什么任务。

这是最好的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>

3 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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