当前位置: 首页 > 知识库问答 >
问题:

Sonarqube-C#代码未显示在仪表板上

高钱青
2023-03-14

设置如下:

Ubuntu 16.04上的Jenkins 2.89.2

SonarQube版本6.7(构建33306)在Ubuntu 16.04上(单独的服务器)

node {
    sh 'mono ~/tools/hudson.plugins.sonar.MsBuildSQRunnerInstallation/MSBuild/SonarQube.Scanner.MSBuild.exe begin /key:12345678FAKEKEY9l02998745'
    sh 'dotnet restore WSP1.sln'
    sh 'dotnet msbuild WSP1.sln'
    sh 'mono ~/tools/hudson.plugins.sonar.MsBuildSQRunnerInstallation/MSBuild/SonarQube.Scanner.MSBuild.exe end' } }

当我运行这个管道时,我可以看到正在分析C#代码,这只是正在分析的代码片段:

Services/Project1/Services/Project1EventsShould.cs(130,21): warning S1186: Add a nested comment explaining why this method is empty, throw a 'NotSupportedException' or complete the implementation. [/var/lib/jenkins/workspace/CSharpAnalysis/WSP1/test/Unit/Unit.csproj]
Services/Project1/Services/Project1EventsShould.cs(137,21): warning S1186: Add a nested comment explaining why this method is empty, throw a 'NotSupportedException' or complete the implementation. [/var/lib/jenkins/workspace/CSharpAnalysis/WSP1/test/Unit/Unit.csproj]
Services/Project1/Models/ZenEventShould.cs(24,17): warning S1481: Remove this unused 'date' local variable. [/var/lib/jenkins/workspace/CSharpAnalysis/WSP1/test/Unit/Unit.csproj]
Services/Project1/Models/CollaborationUserShould.cs(16,17): warning S1481: Remove this unused 'sut' local variable. [/var/lib/jenkins/workspace/CSharpAnalysis/WSP1/test/Unit/Unit.csproj]

最后我成功了,一切看起来都很好,但当我检查SonarQube时,我可以看到上传的代码正在被分析以在SonarQube中显示,这通常需要一分钟左右,但当这完成时,我可以看到只显示打字脚本和XML。

在输出中,我会得到一些警告、信息和错误,但没有什么是危险的,在输出结束时,我会得到成功消息

INFO: 68 files had no CPD blocks
INFO: Calculating CPD for 281 files
INFO: CPD calculation finished
INFO: Analysis report generated in 1771ms, dir size=5 MB
INFO: Analysis reports compressed in 3908ms, zip size=2 MB
INFO: Analysis report uploaded in 5866ms
INFO: ANALYSIS SUCCESSFUL, you can browse http://sonar.serverdomain.com:9000/dashboard/index/12345678FAKEKEY9l02998745
INFO: Note that you will be able to access the updated dashboard once the server has processed the submitted analysis report
INFO: More about the report processing at http://sonar.serverdomain.com:9000/api/ce/task?id=AKsdHc7FAKEIDVOeCzBYv
INFO: Task total time: 1:32.107 s
INFO: ------------------------------------------------------------------------
INFO: EXECUTION SUCCESS
INFO: ------------------------------------------------------------------------
INFO: Total time: 1:42.735s
INFO: Final Memory: 54M/397M
INFO: ------------------------------------------------------------------------
The SonarQube Scanner has finished
14:59:57.577  Creating a summary markdown file...
14:59:57.59  Analysis results: http://sonar.serverdomain.com:9000/dashboard/index/12345678FAKEKEY9l02998745
14:59:57.591  Post-processing succeeded.
Finished: SUCCESS

编辑:我再次挖掘输出,注意到以下2个警告:

INFO: Quality profile for cs: Sonar way
INFO: Quality profile for ts: Sonar way
INFO: Quality profile for xml: Sonar way
INFO: Sensor C# Properties [csharp]
WARNING: WARN: Property missing: 'sonar.cs.analyzer.projectOutPaths'. No protobuf files will be loaded for this project.
WARNING: WARN: No roslyn issues report not found for this project.
INFO: Sensor C# Properties [csharp] (done) | time=1ms

共有1个答案

微生俊材
2023-03-14

我刚刚在Sonarqube 6.7.4(构建38452)上遇到了同样的问题。

通过两个步骤解决:

  1. 将内置的sonarc#插件更新到7.2版本(构建5463)(卸载-重启-安装-重启)并重新扫描后,出现了代码问题(漏洞、代码气味等)。
  2. 在测试项目中引入了包coverlet.msbuild以生成覆盖率数据,配置了Project-Administration-c#-OpenCover单元测试报告路径以使用path/to/coverage.OpenCover.xml。重新扫描后,显示测试覆盖率数据。
    dotnet path/to/SonarScanner.MSBuild.dll begin /k:"project-key"
    dotnet build
    dotnet test /p:CollectCoverage=true /p:CoverletOutputFormat=opencover
    dotnet path/to/SonarScanner.MSBuild.dll end
 类似资料:
  • 我将sonarqube jacoco用于codecoverage,我有一个junit测试用例用于我的java代码,它采用的是下面的目录结构。 我希望在sonarqube仪表板上有一个代码覆盖率,我也在使用gradle。 我正在运行gradle sonarqube 我不知道我哪里做错了?如果有任何一个可以帮助从java代码中获得测试用例的覆盖面。

  • 你可以在整个屏幕上显示仪表板。在此模式下,标题栏、工具栏、选项卡栏、页面窗格、控件列表和属性窗格将被隐藏。若要以显示视图打开仪表板,请点击 “显示”。 如果你在仪表板上添加了控件图表,则可以使用控件筛选所有图表的数据系列。 若要退出显示视图,请按 ESC 键,工作区窗口将返回其先前状态。

  • 你可以在整个屏幕上显示仪表板。在此模式下,标题栏、工具栏、选项卡栏、页面窗格、控件列表和属性窗格将被隐藏。若要以显示视图打开仪表板,请点击 。 如果你在仪表板上添加了控件图表,则可以使用控件筛选所有图表的数据系列。 若要退出显示视图,请按 ESC 键,工作区窗口将返回其先前状态。

  • 你可以在整个屏幕上显示仪表板。在此模式下,标题栏、工具栏、选项卡栏、页面窗格、控件列表和属性窗格将被隐藏。若要以显示视图打开仪表板,请点击 “显示”。 如果你在仪表板上添加了控件图表,则可以使用控件筛选所有图表的数据系列。 若要退出显示视图,请按 ESC 键,工作区窗口将返回其先前状态。

  • 环境:Windows 7 | sonar cube 4.4 | sonar runner 2.4 |。NET (C#) | Visual Studio专业版2013 我一直在使用声纳3.2 同样的配置,当我升级到SonarQube 4.4时 声纳项目属性: 我知道我们需要通过一个批处理文件获得覆盖率XML文件,使用它我们可以在SonarQube Dashboard中看到覆盖率结果。 我无法获得通过

  • try1:直接使用以下命令尝试: 试图使用url http://172.20.22.101:8001/api/v1访问仪表板,但它表示未经授权。 try2:创建了包含以下内容的dashboard-admin.yaml文件: