【问题标题】:Reporting failed task in CruiseControl.NET在 CruiseControl.NET 中报告失败的任务
【发布时间】:2011-01-14 14:18:07
【问题描述】:

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

目前我有三个任务:

  • 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>

【问题讨论】:

    标签: msbuild build-process cruisecontrol.net gallio


    【解决方案1】:

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

    【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 酷,我试试看。
    【解决方案3】:

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

    【讨论】:

    • 是的,日志被合并,它是在publishers 节点之前的publishers 部分中完成的。来自 msbuild 和 gallio task 的所有内容都进入了日志文件,只是 CruiseControl 没有做任何事情。
    猜你喜欢
    • 1970-01-01
    • 2016-01-31
    • 1970-01-01
    • 1970-01-01
    • 2017-06-02
    • 1970-01-01
    • 2011-03-03
    • 1970-01-01
    • 2013-01-31
    相关资源
    最近更新 更多