我是TFS配置的新手。
目前我们的项目完成了50%,但我们发现我们的代码质量很差。我们考虑需要使用静态代码分析工具,如Resharper或其他产品,如StyleCop、CodeAnalysis和FxCop。
我们希望配置TFS,在检入包含触发代码分析警告的代码时拒绝检入。
但对于之前的代码,我们希望抑制现有的警告,以防止代码变得比现在更糟糕。
我是TFS配置的新手。
目前我们的项目完成了50%,但我们发现我们的代码质量很差。我们考虑需要使用静态代码分析工具,如Resharper或其他产品,如StyleCop、CodeAnalysis和FxCop。
我们希望配置TFS,在检入包含触发代码分析警告的代码时拒绝检入。
但对于之前的代码,我们希望抑制现有的警告,以防止代码变得比现在更糟糕。
打开工具,例如为解决方案配置代码分析或使用Resharper的解决方案广泛分析功能,可以帮助您发现问题,但除非您的团队停止创建这些问题,否则它将无法解决它们或防止类似问题在未来出现。
提示:请注意,您还可以在构建期间打开Resharper使用Resharper CLI功能。
如果代码本身太糟糕以至于触发大量警告可能会产生错误和问题,则我不会强制执行StyleCop。先解决这些问题,稍后再美化代码。您现在的优先事项是消除任何可能的错误。
CodeAnalysis和FxCop是相同的东西,因此您不需要同时启用两者。像Resharper这样的工具可以帮助您的开发人员通过使用魔术键ALT+ENTER快速消除许多问题。
如果您想创建一个干净的基线,可以运行一次代码分析,然后选择生成的所有警告,然后选择在全局抑制文件中抑制。这适用于代码分析问题,但不会抑制任何编译器警告,没有快速抑制所有当前编译器警告的简单方法。根据您是否已经拥有构建服务器,您的下一步是安装Team Build,一旦您拥有了构建服务器,您需要设置构建定义。这个博客帖子涵盖了大部分步骤。提示:有时将现有的
globalsupressions.cs
文件临时重命名,以便将此“基线”单独存储可能有所帮助。然后您就知道哪些警告需要稍后修复。提示:当开发人员抑制警告时,请让他们添加一个
Justification="抑制原因"
到生成的抑制中,这样您就可以区分经过仔细考虑的抑制和暂时的抑制。
更高级的解决方案是在Team Build环境中安装和配置SonarQube。 ALM Rangers和Sonar最近合作创建了安装指南和许多扩展,以实现Team Build和SonarQube的集成。您可以在此处找到安装指南。提示:与其一次性打开所有规则(或将它们全部切换为在构建期间引发错误),您也可以选择逐个打开规则并进行修复。按类别打开规则为您提供了一个很好的机会来教导人们打开规则的重要性以及可能的解决方案。