做网站如何对接支付,中国工商注册网企业年报系统,温州系统开发,镇江网站排名优化价格来源#xff1a;https://www.cnblogs.com/7tiny/p/11342902.html【前言】本系列主要讲述sonarqube的安装部署以及如何集成jenkins自动化分析.netcore项目。目录如下#xff1a;SonarQube系列一、Linux安装与部署SonarQube系列二、分析dotnet core/C#代码SonarQube系列三、如何… 来源https://www.cnblogs.com/7tiny/p/11342902.html【前言】本系列主要讲述sonarqube的安装部署以及如何集成jenkins自动化分析.netcore项目。目录如下SonarQube系列一、Linux安装与部署SonarQube系列二、分析dotnet core/C#代码SonarQube系列三、如何集成jenkins实现分析自动化【实现功能】 这篇文章将要介绍的主要内容如下sonarqube分析.netcore项目下的C#代码sonarqube生成单元测试报告代码覆盖率【SonarQube分析C#代码】1.sonarqube账号token的生成sonarqube支持生成用户token以便在命令行或者脚本中使用token代表账号操作sonarbue避免造成账号密码的泄露。点击sonarqube首页右上角头像进入我的账号然后进入安全tab页随便输入个标识点击生成生成一个账号专属的token生成的token只会显示一次且后续无法查询因此先把他手动备份下来后续会用到。2.安装netcore分析器分析netcore项目微软和sonar一起协作做了很多工作大大简化了我们的工具使用官网可以查看相关工具及命令https://docs.sonarqube.org/latest/analysis/scan/sonarscanner-for-msbuild/我们按照官方提示找到 MSBuild .NET Core Global Tool 直接安装dotnet全局工具dotnet tool install --global dotnet-sonarscanner --version 4.3.1安装完后我们把我们的sonar的token注入到该命令的配置中以便在执行命令时自动关联到对应账户的sonar。在dotnet tool的安装目录下找到一个叫 SonarQube.Analysis.xml 的配置文件。我的xml在该目录下/root/.dotnet/tools/.store/dotnet-sonarscanner/4.6.2/dotnet-sonarscanner/4.6.2/tools/netcoreapp2.1/any然后我们在对应节点将 sonarweb 的地址和 token 填写上即可。当然如果不配置也是可以的那么就需要每次执行命令时将token一起当作参数填写肯定是不如一次性配置好方便的。3.开始分析代码首先随便找个项目这个就不多说了。有了代码以后然后进入代码目录依次输入下面命令开始命令下面命令已经备注了三个参数的用途dotnet sonarscanner begin /k:这里填SonarQube将要生成的项目的唯一编码 /n:sonarqube中将要显示的项目名称 /v:当前执行活动号可以动态递增或使用时间戳编译命令build 后面的参数为 dotnet core 项目的 xxx.sln 文件的完整路径dotnet build xxx.csproj分析并将分析结果推送到sonarqube站点dotnet sonarscanner end例如:dotnet sonarscanner begin /k:SevenTiny.Bantina /n:SevenTiny.Bantina /v:11dotnet build 20-Solution/SevenTiny.Bantina.slndotnet sonarscanner end经过一段时间以后可以看到输入日志已经 push 到 sonarqube 站点成功那么就可以去 sonarqube 站点查看结果了,项目会通过 api 自动创建。上述步骤并不会有覆盖率先忽略我们后面会继续讲解如何提供单元测试覆盖率。我们点击标题进入项目详情页这里主要报告了几个指标sonar有默认标准如果不达标会报警例如顶端红色错误提示Bugs 漏洞代码中的重大漏洞可能影响到项目的正常运行急需改正异味无关紧要的编码不规范问题建议改正一般不会影响功能点开详细信心可以看到规范的使用案例对规范自己的变成水平有相当大的帮助覆盖率项目的单元测试情况重复项目中的重复代码块建议重构sonarqube 还提供了很多图表来展示多维度的代码分析情况。【添加单元测试信息】经过上述步骤并不能实现单元测试的结果展示事实上sonarqube 本身也办不到对单元测试的分析通常的做法是将其他工具生成的单元测试结果整合到 sonarqube 中借助 sonarqube 来更好地展示单元测试结果。首先我们的项目要有专门的单元测试项目并且规范地使用 Assert 等单元测试语句对项目代码进行了单元测试。1.使用 coverlet 分析单元测试覆盖率在单元测试项目安装 coverlet.msbuild nuget包单测项目不是正式的项目这种方式便于和dotnet test命令集成。这种方式下, 当它被启用后, 它会集成到dotnet test 这个命令架构里, 在测试运行后自动生成覆盖率报告.2.通过 dotnet test 命令输出单元测试结果dotnet test 是 dotnet 默认的集成工具用于执行单元测试项目并输出测试结果。执行命令dotnet test xxxtest.csproj --logger:trx;LogFileNametest.trx /p:CollectCoveragetrue /p:CoverletOutputFormatopencover /p:CoverletOutput./TestResults/上述命令指定了某个测试项目并输出测试结果为 test.trx 文件同时输出单元测试覆盖率分析文件为 opencover 格式的文件。也就是说上述命令会生成两个文件一个是单测的结果一个是单测覆盖率的详情描述 xml 文件。3.将单测文件集成到sonarqube打开 sonarqube 的单个项目设置不是全局设置然后找到对应语言的页签当然我们今天的语言是C#找到单元测试覆盖率 opencover 的设置区域用通配符 ** 去匹配生成的单测覆盖率文件。还有单元测试报告文件设置这样下次执行 dotnet sonarscanner 命令的时候就会自动把单元测试的相关文件输出结果也推送到 sonarqube 中。最后的结果也就是图中展示的那样显示出了项目代码的单元测试覆盖率甚至是本次有提交新代码的时候新代码的单元测试覆盖率如果低于阈值默认80%则会出现上面的报警:点进单元测试覆盖率详情页我们可以看到更加详细地对单元测试的描述例如覆盖了多少行代码漏掉了多少行代码点开具体的代码行还可以看到那些行有单元测试的覆盖总之是非常详尽了...【扩展】SonarQube 如何排除不需要分析地代码文件有些时候引入了很多第三方的库尤其是web项目的jquery库我们并不需要对第三方引用的库进行分析甚至会因为包含的杂七杂八的的各种语言脚本太多那么我们就要将无关的代码排除。 打开单独项目的设置非全局设置找到排除可以采用通配符排除文件或文件夹下面有通配符的使用介绍。当然了也可以指定哪些文件是需要包含的这样可以按需进行分析。-END-看完本文的你是否有所收获请转发给更多人关注【猿学圈】提升IT技能~长按关注谢谢转发学海无涯别担心有我陪着你~点个赞让我在心里记住你 ☟