使用SonarCloud测试c++代码

1.使用github账号登陆sonarcloud。https://sonarcloud.io/projects

2.由于sonarcloud只支持检测vs2013以上版本创建的项目,所以版本低的如果想避坑的话请不要尝试了。我是直接安装了vs2017,组建默认安装即可。

3.在sonarcloud中按照傻瓜提示,从github中import一个organization用以分析,按照步骤进行

使用SonarCloud测试c++代码_第1张图片

使用SonarCloud测试c++代码_第2张图片

在第2步中会让我们下载两个包包,它提供了download,对于Scanner for MSBuild,选择下载.NET Framework 4.6+这一条

使用SonarCloud测试c++代码_第3张图片

对于Build Wrapper for Windows则直接点击Download即可下载

4.下载完后,我在c盘下建了一个文件夹,将这些下载的东西放入其中(build-wrapper-win-x86-64.exe也索性放这了),并将此文件夹加入系统环境变量path。

使用SonarCloud测试c++代码_第4张图片

使用SonarCloud测试c++代码_第5张图片

5.自行下载JRE并安装,新增名为JAVA_HOME的系统环境变量

下载地址: https://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html

使用SonarCloud测试c++代码_第6张图片

6.可以开始测试了!

sonarcloud上的傻瓜提示如图

使用SonarCloud测试c++代码_第7张图片

我们打开cmd,先cd到待检测c++项目的sln所在目录

copy傻瓜命令第一行并执行,发现报错

使用SonarCloud测试c++代码_第8张图片

此时按照提示,将/d:sonar.organization="museumrobot" 改为/o:"museumrobot",继续执行 SonarQube.Scanner.MSBuild.exe begin /k:"MuseumRobot_RobotQ_MapEditor" /o:"museumrobot" /d:sonar.cfamily.build-wrapper-output=bw-output /d:sonar.host.url="https://sonarcloud.io" /d:sonar.login="0568da4da4c3bbfe6007e537bdcbcfa21f3cf942"

发现可以执行。

使用SonarCloud测试c++代码_第9张图片

复制执行第二步傻瓜提示

build-wrapper-win-x86-64.exe --out-dir bw-output MsBuild.exe /t:Rebuild

执行截图如下

使用SonarCloud测试c++代码_第10张图片

使用SonarCloud测试c++代码_第11张图片

可能会发现报错

此时可以通过VS2017绝对路径下的MSBuild.exe来解决问题

build-wrapper-win-x86-64.exe --out-dir bw-output C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\MsBuild.exe /t:Rebuild

copy傻瓜命令的第三步并执行,

SonarQube.Scanner.MSBuild.exe end /d:sonar.login="0568da4da4c3bbfe6007e537bdcbcfa21f3cf942"

使用SonarCloud测试c++代码_第12张图片

发现并没有错误产生,耐心等待代码分析,如果360提示授权,尽可授权

使用SonarCloud测试c++代码_第13张图片

使用SonarCloud测试c++代码_第14张图片

可以了,出现succeeded

7.针对测试项目生成的检测结果在sonarcloud中可以查看

使用SonarCloud测试c++代码_第15张图片

8.我认为从github中导入的是哪个repo并不重要,只是起到标识作用,因为我引入的项目和检测的项目不一样也可以成功生成检测报告。

9.祝大家开心,玩得愉快!

你可能感兴趣的:(c++)