问题标签 [sonarqube-msbuild-runner]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1708 浏览

c# - SonarQube:无法为带有文件的文件创建第 X 行的度量

我们最近将 SonarQube 服务器升级到最新版本 (5.3) 并升级了所有插件。该服务器目前仅监视由 Visual Studio Team Services(之前是 Visual Studio Online)构建的 C# 项目的单个构建。

起初,一切都很好(除了一个长期存在的问题,我将在另一个问题中描述)。但过了一段时间,我们在尝试将数据推送到 SQ 时开始出现如下错误:

我们找到了一篇文章 ( https://groups.google.com/forum/#!topic/sonarqube/Xju6ichZe_k ),其中描述了一种解决方案,涉及更改其中一个插件 (sonar-dotnet-tests-library) 的代码并替换在服务器上构建文件。作为 .NET 负责人,我们不介意不必修改其他人的 Java 库来使其工作;)

这是问题的解决方案,还是有其他可能导致此问题的原因?目前它阻止我们将数据推送到 SonarQube,这是一种耻辱......


注意:这个答案不是关于如何从循环顺序中获得最佳性能或如何并行化它,因为我认为由于多种原因它不是最理想的。我将尝试就如何改进订单(并将其并行化)提供一些建议。

循环顺序

OpenMP 通常用于在多个 CPU 上分配工作。因此,您希望最大化每个线程的工作量,同时最小化所需的数据和信息传输量。

  1. 您希望并行执行最外层循环而不是第二个循环。因此,您需要将其中一个r_matrix索引作为外部循环索引,以避免在写入结果矩阵时出现竞争条件。

  2. 下一件事是您要按内存存储顺序遍历矩阵(将变化更快的索引作为第二个而不是第一个下标索引)。

您可以通过以下循环/索引顺序实现两者:

在哪里

  • j变化快于i或变化快k于。ki
  • i是结果矩阵下标,i循环可以并行运行

以这种方式重新排列你multiply_matrices_KIJ已经提供了相当多的性能提升。

我做了一些简短的测试,我用来比较时间的代码是:

模仿你的multiply_matrices_KIJ()功能与

执行上述命令。

Intel i5-2500k 上两个2048x2048矩阵相乘的时间消耗

  • mm_kij(): 6.16706s。

  • mm_opt(): 2.6567 秒。

给定的顺序还允许外循环并行化,而不会在写入结果矩阵时引入任何竞争条件:

每个线程写入单个结果行的位置

Intel i5-2500k(4 个 OMP 线程)上两个2048x2048矩阵相乘的时间消耗

  • mm_kij(): 6.16706s。

  • mm_opt(): 2.6567 秒。

  • mm_opt_par(): 0.968325s。

不是完美的缩放,但作为一个比串行代码更快的开始。

0 投票
0 回答
110 浏览

c# - SonarQube for .NET,未显示所有项目的覆盖范围

我们有一个基于 Visual Studio Team Services(之前是 Visual Studio Online)构建的 .NET 解决方案。该构建将代码覆盖率数据推送到 SonarQube (5.3)。我们看到,对于某些项目,覆盖率低于预期值(与原始 *.coverage 文件中的值相比),对于其他项目,它是 0 %,而其他项目则根本没有任何价值。

不幸的是,我们的团队中没有 SonarQube 专家,但我们尝试更改所有看起来相关的设置,但没有成功。可以从哪里开始调试正在发生的事情以及导致这种行为的原因?

我很乐意发布更多信息(设置、版本等),但我不知道从哪里开始......

0 投票
1 回答
445 浏览

msbuild - MSBuild.SonarQube.Runner.exe 执行失败并显示“MSBUILD:错误 MSB1009:项目文件不存在。”

我们的 .NET 解决方案可以MSBUILD从命令行很好地编译。我们正在使用MSBuild.SonarQube.Runner.exe失败并显示消息的声纳质量指标

后处理期间执行失败”。日志显示错误消息为“INFO - MSBUILD:错误 MSB1009:项目文件不存在。

尝试在声纳中进行跟踪/调试级别的日志记录,但没有出现任何有用的信息。后处理和编译总是成功的。唯一值得注意的一点是,在上面的错误行之后,下一行说

信息 - 开关:D:\OurProject.sonarqube\out.sonar\q3techAMSUSProducerIVRGallery-Dev_AMSUSProducerIVRGallery_q3techAMSUSProducerIVRGallery-Dev_AMSUSProducerIVRGallery_397A5FDA-B454-4739-9A38-91810B9229DC\StyleCop-msbuild.proj

磁盘上存在引用的 stylecop 文件,我们尝试禁用所有 stylecop 和 fxcop 规则,但没有任何帮助。如果需要,可以共享日志文件。

请告知 - 解决方案或诊断步骤?

0 投票
1 回答
1036 浏览

sonarqube - MSBuild SonarQube Runner 代理身份验证

运行 MSBuild.SonarQube.Runner.exe(2.0 版)时,我收到以下错误:

这是在 Jenkins Windows slave 上运行的,实际上,它确实需要代理身份验证。SonarQube 服务器与 Jenkins 主服务器或从服务器不同。

服务器上的更新中心已关闭,我什至尝试在 SonarQube.Analysis.xml 文件中包含以下属性(只是为了笑):

是否可以关闭 MSBuild SonarQube Runner 中的更新功能?

0 投票
0 回答
1863 浏览

jenkins - SonarQube MSBuild Runner 不导入测试和代码覆盖结果

我已经配置了我的 Jenkins 构建服务器来分析我的代码并发布到我的 SonarQube 服务器。我已成功发布扫描结果,但测试和 VS 代码覆盖率结果未发布到 SonarQube。

我已为 MSBuild 开始分析步骤的 SonarQube 扫描器添加了所需的附加参数

我已配置构建步骤以通过 CodeCoverage.exe 执行覆盖率收集,如用于导入代码覆盖率和单元测试执行结果的 SonarQube wiki 页面中所述。

我还在控制台输出中观察到,SonarQube Scanner 正在解析这两个文件。IE

我可以做些什么来识别和解决导入测试和覆盖结果的问题?

0 投票
1 回答
2372 浏览

c# - SonarQube 无法完成构建后步骤

我在 Windows 2012 R2 上设置了 Jenkins 服务器。这些是我的构建设置:

在此处输入图像描述

在下面,您会看到错误。应该说预构建步骤运行成功:

所以在我的 Jenkins 配置中,我有这个:

在此处输入图像描述

我错过了一些东西来完成这项工作吗?

0 投票
1 回答
87 浏览

msbuild - SonarQube msbuild runner 不会导入所有 fxcop 消息

我们在 TFS vNext 构建中使用 sonarqube 和 sonarqube msbuild 运行器。集成有效:我们在 sonarqube 中看到了预期的新分析结果。但是,并非 CodeAnalysisLog.xml 中的所有问题都导入 sonarqube。如果我们在本地运行分析,则会报告这些问题。如果我们检查构建服务器上生成的 CodeAnalysisLog.xml,文件中存在问题。然而,SonarQube 没有显示它。我们确实使用自定义规则集,但一切都在本地和服务器上正确配置。

我试图查看源代码以了解解析和过滤的工作原理,但找不到任何东西。我查看了 Jira 上的未解决问题,但没有看到任何相关的内容。

我该如何进一步调试呢?其他人也有同样的经历吗?

0 投票
1 回答
658 浏览

sonarqube - SonarQube 是否忽略 isSuppressedInSource?

我正在使用 SonarQube Scanner for MSBuild 2.0 和 SonarQube 5.4。我已将 Roslyn Wintellect.Analyzers NuGet 包的 SonarQube 插件添加到 SonarQube 服务器,并将规则添加到我的 SonarQube 项目使用的质量配置文件中。在 C# 源代码中,我使用#pragma 禁用了“Wintellect003”规则(然后我尝试了内联和 GlobalSuppressions.cs 中的 SuppressMessage 属性)。该规则已在 Visual Studio 2015 和 msbuild 14 中成功禁用,但 SonarQube 不尊重我已禁用该规则的事实(对于这一行代码 - 我尚未在 SonarQube 或规则集中禁用该规则)。

我可以看到 MsBuild.SonarQube.Runner.exe 正在识别抑制,因为在“结束”阶段它会生成 RoslynCA.json 文件以发送到 SonarQube,它包括以下部分:-

如您所见,它说“isSuppressedInSource”是真的。不幸的是,SonarQube 不尊重此设置。有任何想法吗?

(我尝试停止 SonarQube 服务器,删除 data\es 文件夹以清除缓存并重新启动 SonarQube 服务器,但这没有帮助)。

0 投票
1 回答
3369 浏览

sonarqube - VS 单元测试结果文件 (.trx) 未显示到 SonarQube

我已经使用以下设置了 SonarQube:

  • 声纳-5.4
  • MSBuild.SonarQube.Runner-2.0
  • VS 2013(目标 .net 框架 4.5.1)
  • SQLServer2014速成版
  • Windows7Professional SP1 64 位操作系统

我使用了上述设置并且能够将代码分析结果发布到 SonarQube。我按照以下链接发布了单元测试结果 (.trx) 文件:http ://docs.sonarqube.org/pages/viewpage.action?pageId=6389772

我在“开始”命令中添加了以下标签来获取 VS 单元测试结果文件。

下面是从控制台窗口底部捕获的解析详细信息:

但单元测试详细信息未显示在项目仪表板/代码覆盖率选项卡中。是否需要进行任何设置或配置(已添加 C# 插件)?我们如何在 SonarQube 中查看单元测试结果?

请找到项目仪表板的附加屏幕截图。我们在哪里可以看到单元测试结果?

单击第二个选项卡“Coverage”时,会显示消息 -“此组件没有覆盖详细信息”。

项目仪表板

0 投票
1 回答
896 浏览

sonarqube - xml 中的 SonarQube C# DotCover 报告

.xml使用 MSBuild 扫描仪导入 SonarQube 时,有什么方法可以使用 DotCover 分析的输出?

当前运行:

  • 平方 5.4
  • C# 插件 5.0

这是有问题的特定 SonarQube 属性键:sonar.cs.dotcover.reportsPaths

指南中显示的示例告诉我只.html接受扩展名。这是为什么?我来自一个我们保存报告输出.xml然后将其转换为.html报告的世界。有没有办法使用.xml输出?