SonarQube系列文章:
SonarQube + VSTS(TFS)静态代码检查解决方案
众所周知Sonar是一个很强大的静态扫描工具,代码提交之后可以自动触发代码扫描,并给出report,因此给开发项目带来了很多便利。
本篇文章根据项目实践,将微软.Net体系与Sonar代码工具进行结合,用Sonar打通了Java和.Net两个体系,相信可以解决许多公司多语言多平台的静态代码质量难以掌控的痛点。
下面闲言少叙我们直接切入正题:
一、物料准备:
1、Sonar服务器:(SonarQube 5.6+)
2、TFS:(TFS2015 update3 、TFS2017)
3、VSTS 2015、VSTS 2017
4、.NET Framework v4.5.2+
5、Java Runtime Environment 8
6、SonarQube VSTS插件(下载地址:https://marketplace.visualstudio.com/items?itemName=SonarSource.sonarqube)
二、使用前的配置:
1、配置SonarQube 服务
打开Visual Studio Team Services Control Panel. 然后打开Services页,
如图所示,在项目最上方的菜单中点击Settings图标, 然后点击Services菜单.
鼠标点击New Service Endpoint然后选择SonarQube.
指定一个Connection Name, 输入SonarQube Server的Server URL(有必要的话可以包含端口号) 然后输入Authentication Token.
2、配置和运行分析
SonarQube提供了3个任务在构建中分析项目:
准备分析配置任务,在执行构建之前配置所有必需的设置。这个任务是强制性的。在.NET解决方案或Java项目的情况下,它有助于与MSBuild,Maven和Gradle任务无缝集成。
运行代码分析任务,实际执行源代码的分析。Maven或Gradle项目不需要此任务,因为扫描程序将作为Maven / Gradle构建的一部分运行。
发布分析结果任务,此任务将会在构建摘要中显示质量状态,并让您了解应用程序是否已经“Ready”发布生产。注意这个任务是可选的。此任务会大幅增加整个构建时间,因为它将轮询SonarQube服务器直到分析完成。
要找到这些任务,可以键入“SonarQube”来过滤它们,如下图所示:
三、分析一个.NET Solution:
1、在构建定义中,添加:
至少准备分析配置任务和运行代码分析任务
非强制性的发布分析结果任务
2、重新排列任务以遵守以下顺序:
在任何MSBuild或Visual Studio生成任务之前准备分析配置任务。
在Visual Studio测试任务之后运行代码分析任务。
运行代码分析任务后发布分析结果任务
3、点击“Prepare Analysis”配置构建步骤:
SonarQube服务器部分允许定义要使用的端点(即SonarQube服务器实例)。
从下拉列表中选择一个现有的端点
添加一个新的端点
管理现有的端点
保持与MSBuild的集成检查并至少指定项目密钥
项目密钥 - SonarQube独有的项目密钥
项目名称 - SonarQube中项目的名称
项目版本 - SonarQube中项目的版本
在“附加属性”文本区域中,如果有测试并希望获得覆盖率报告,可以添加以下属性:
4、单击Visual Studio Test任务,并选中Code Coverage Enabled复选框以处理代码覆盖率,并将其导入到SonarQube中。 (单元测试相关内容,可选)
完成以上步骤,你就可以触发一个构建。
领取专属 10元无门槛券
私享最新 技术干货