【问题标题】:How would I create a Custom TFS Checkin Policy to check code for coding standards?我将如何创建自定义 TFS 签入策略来检查编码标准的代码?
【发布时间】:2016-02-20 01:02:25
【问题描述】:

在过去 15 年多的时间里,我正在处理大量按照各种代码标准编写的遗留代码。目前,我们使用 TFS 进行版本控制,更改不是一种选择。一次将所有遗留代码重写为当前标准也不是一种选择。代码库需要改进,以便我们解耦各个层并迁移到更像 MVC 的模型。

我正在寻找一种仅对当时提交的文件运行某种形式的自定义代码分析的方法。正则表达式检查文件中不应该存在的某些字符串(例如 aspx.vb 文件中的 ExecuteScalar()) 本质上,我想知道开发人员编写的代码是否不符合我们的标准,或者如果他们提交的文件包含不符合我们标准的代码。我们的想法是,我们将立即强制开发人员按照标准编写代码,并逐步将他们正在使用的文件更新为当前标准。随着时间的推移,这应该会产生更清晰的代码库。

我一直在阅读有关 TFS 签入策略的 MSDN 文档,但我并没有真正找到我想要的东西。大多数文档似乎都涉及在整个项目上运行代码分析并创建工作票以进行清理。一个可能的解决方案,但不太理想。

是否有任何预先编写的自定义 TFS 签入策略可以执行此操作?如果没有,怎么写这样的东西?

【问题讨论】:

    标签: vb.net tfs


    【解决方案1】:

    我认为仅对已更改的代码运行静态代码分析将非常困难。我们想以类似的方式跟踪单元测试覆盖率,最终查看了总覆盖率,并在我们的构建中添加了一个 PowerShell 脚本,当总覆盖率下降时构建失败,这意味着有人在没有单元测试的情况下添加了代码。

    您可以执行类似的操作,查看代码标准问题的总数,并在数量增加时使用自定义 PowerShell 脚本使构建失败。这应该有助于您的团队促进其编码标准的持续改进。

    TFS 框中有默认的代码分析签入策略。

    【讨论】:

      【解决方案2】:

      所以这对于 TFS2008 来说有点过时,但您可以将其用作创建自定义代码分析策略的指南。 TFS 2008 Code Analysis check-in policy 让代码分析为任何失败的规则抛出构建错误应该有助于执行您的遗留代码标准。

      【讨论】:

        【解决方案3】:

        如果我对您的理解正确,您希望阻止任何新的代码分析违规行为被提交到 TFS(并减少现有债务)。如果您正在运行 VS2015 Update 1,您可以轻松完成第一部分。您需要定义一个自定义 CA 策略,其中将违规标记为错误而不是警告。然后在 VS 中,您可以右键单击该项目并选择 Analyze/Run Code Analysis and Suppress Active Issues。这将在与 .vbproj 相同的位置创建一个 GlobalSupressions 文件。

        这会创建 CA 错误的基线,基本上您现在正在清除这些错误,但重要的是您将停止任何新错误。

        接下来,您需要按照@chief7 的建议将代码分析添加到签入策略中。这将确保已对要提交到源的代码运行代码分析。 (您实际上可以配置 .vbproj 以在构建时运行代码分析)。

        所以现在你已经修复了漏洞,你需要偿还债务,减少现有的 CA 错误。在 VS 2015 Update 1 中,您只能显示 Changed Documents 中的错误,取消过滤被抑制的问题,然后您可以修复。这将是一个手动步骤,您可以要求开发人员养成这样做的习惯。

        虽然我确信这一切都适用于 C#,但我假设它适用于 VB,但我不确定。

        【讨论】:

          猜你喜欢
          • 2010-11-12
          • 2017-01-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-01-20
          • 1970-01-01
          • 2011-09-02
          • 1970-01-01
          相关资源
          最近更新 更多