【问题标题】:Making TeamCity FxCop build step cause a build fail if a rule is violated如果违反规则,使 TeamCity FxCop 构建步骤导致构建失败
【发布时间】:2011-04-11 03:41:32
【问题描述】:

我的构建配置中有两个构建步骤:Visual Studio (sln) 构建运行程序,然后是 FxCop 构建运行程序。我正在使用 TeamCity 6.0.1 和 FxCop 10.0。

开箱即用,TeamCity 中的 FxCop 运行器似乎只报告违反规则的情况,并在代码检查选项卡上生成报告。我想确保如果发生任何违规,构建步骤会失败,从而导致整个构建失败。

有没有办法做到这一点?

【问题讨论】:

    标签: teamcity fxcop


    【解决方案1】:

    请将您的 FxCop 构建步骤配置中的 Errors limit 属性设置为 0。如果至少存在一个分析错误,这应该会中断构建。

    此外,还有一个类似的 Warnings limit 属性。如果您不想在警告级别允许任何违规行为,请在此字段中插入值 0。如果您想在规则属性 BreaksBuild == False 的情况下允许违反规则,请将此属性留空。

    我已经尝试使用 TeamCity 6.0(内部版本 15772)和 FxCop 10.0。

    [14:39:22]: [Step 2/2] Importing inspection results
    [14:39:22]: [Step 2/2] Errors limit reached: found 8 errors, limit 0
    [14:39:22]: [Step 2/2] ##teamcity[buildStatus status='FAILURE' text='Errors: 8, warnings: 1']
    

    【讨论】:

    • 根据我的经验,“分析错误失败”标志仅确保如果 FxCop 出现加载错误,例如未能加载引用的程序集,则构建步骤会导致构建失败。违反规则时,该标志不会导致构建失败。
    • 对不起,你是对的。 “分析错误失败”标志不是您要查找的。我试着给出一个更好的答案。
    • 我一直在通过 MSBuild 运行程序运行 FxCop。使用一些 XPath,您可以查询结果 XML 文件并选择是否相应地中断它。报告解析见ademiller.com/blogs/tech/2009/06/…。有关 TeamCity 中的服务消息,请参阅 confluence.jetbrains.net/display/TCD65/…
    【解决方案2】:

    在 7.0 EAP 版本中,构建配置中的特殊“构建失败条件”=>构建失败条件=>添加构建失败条件,例如"如果检查错误的数量超过 30,则构建失败"

    【讨论】:

    • 这听起来很有希望,这将是我在更高级的构建配置中经常使用的功能。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-21
    • 1970-01-01
    • 2014-09-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多