【问题标题】:How do I automatically fail a nant build if NDepend query raises a warning如果 NDepend 查询引发警告,我如何自动失败构建
【发布时间】:2008-11-11 12:13:08
【问题描述】:

首先确定一些背景。我正忙于自动化我们的构建过程。我们混合运行 Vs 2005 和 VS 2008,两者都针对平台 2.0。我们使用 Nant 进行构建,使用 MSBUILD 任务进行编译,使用 Cruise Control .net 进行 CI。目前,我们将所有警告视为错误,如果任何 FxCop 规则失败(我们禁用的一小部分除外)则构建失败,如果 Simian 在所有项目中检测到超过 5 行的任何代码重复,则构建失败。

我编写了 NDepend CQL 查询来强制执行一些在 FxCop 中难以实现的规则。如果方法/类中的行数超出某个限制,我想使构建失败。如果方法的圈复杂度太高,我也想失败。

我可以轻松地将 NDepend 作为构建的一部分运行。但是,如果我的 CQL 查询返回结果 > 0

,我无法让构建失败

所以这是个问题:

  1. 有人试过吗 相似的?
  2. 是否有 Nant 任务 支持这个?
  3. 如果有 一个调用 NDepend 的 Nant 任务,但是 不会失败构建是源 可用,所以我可以添加此功能?

谢谢, 斯蒂芬

【问题讨论】:

    标签: c# continuous-integration cruisecontrol.net nant ndepend


    【解决方案1】:

    我们所做的实际上是在解析输出文件后立即运行一个 powershell 脚本,并根据找到的条件抛出一系列错误并带有适当的消息。一旦 powershell 抛出错误,构建就会失败。

    【讨论】:

    • 谢谢亚历克斯,这对您有什么帮助?你准备好分享剧本了吗?如果我做出任何更改或改进,我很乐意将它们反馈给您。
    • 我有很多不同的脚本用于很多不同的解析。我们从 MSbuild 或 VisualStudio 执行 MsTest、CppUnit、FxCop、代码覆盖、警告。从那里开始,我们将在许多不同的条件下使构建失败。我从来没有做过Ndepend。我认为这应该很容易做到。
    • 但是,如果您想要其中一个作为示例,请将您的电子邮件地址告诉我,我会发送给您。
    • 如果您不想学习 PowerShell,您也可能会发现 IronPython 是一个合理的选择。
    【解决方案2】:

    请参阅有关 NDepend 关键规则和构建失败的文档: http://www.ndepend.com/Doc_CI_CriticalRule.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-29
      • 2022-12-14
      • 2020-03-24
      • 2017-08-20
      • 1970-01-01
      • 2015-06-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多