如何创建自定义TFS签入策略以检查编码标准的代码?

时间:2016-02-16 12:55:22

标签: vb.net tfs

我正在使用过去15年来编写的各种代码标准的大量遗留代码。目前,我们使用TFS进行版本控制,更改不是一个选项。同时将所有遗留代码重写为当前标准也不是一种选择。代码库需要改进,以便我们将各个层分离并转移到更像MVC的模型。

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

我一直在通过MSFS文档中的TFS Checkin政策,但我并没有真正找到我正在寻找的东西。大多数文档似乎都涉及在整个项目上运行代码分析并创建清理工作票据。一种可能的解决方案,但不太理想。

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

3 个答案:

答案 0 :(得分:3)

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

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

TFS包装盒中有默认的代码分析签到政策。

enter image description here

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

这会创建一个CA错误的基线,基本上你现在正在扫地,但重要的是你会停止任何新的错误。

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

现在您已经修复了泄漏,您需要偿还债务,减少现有的CA错误。在VS 2015 Update 1中,您只能通过已更改的文档显示错误,不会过滤已解决的问题,您可以解决此问题。这将是一个手动步骤,您可以要求开发人员养成做的习惯。

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