需要
无论在传统的程序代码开发中还是现在的DevOps工具链中,都会必不可少的一步操作,那就是代码质量扫描(部分规模不大的公司或团队或许没有这个需要),大公司的需求不仅仅是代码质量扫描(漏洞,缺陷,bugs,坏味道等),还需要涉及到开发者代码质量健壮性,那就是代码的单元测试覆盖率(对开发者要求就会有所要求)。下面我来说说如何在工具链中集成C#语言的单元测试覆盖率扫描。
方案
先来个Jenkins pipeline详解
初始化配置
"SonarScanner.MSBuild.exe begin /n:${SONAR_NAME} /k:${SONAR_NAME} /v:${BUILD_NUMBER}
/d:sonar.cs.vscoveragexml.reportsPaths=%CD%\\VisualStudio.coveragexml" # 配置参数
# ${SONAR_NAME} Jenkins环境变量中定义的变量,用于在sonar里面生成项目名称
# ${BUILD_NUMBER} soanr里面生成的同一个项目里面的不同的扫描版本编号
清理解决方案
"${msbuild16}\\MSbuild.exe xxx.sln /t:Clean"
# ${msbuild16} msbuild安装目录,配置在Jenkins全局环境变量中。
# xxx.sln 根据实际项目来指定sln文件的位置
依赖包安装
"E:\\msbuild_tools\\nuget\\nuget.exe restore xxx.sln -MSBuildPath ${msbuild16}"
# ${msbuild16} msbuild安装目录,配置在Jenkins全局环境变量中。
构建