问题标签 [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.
c# - SonarQube:无法为带有文件的文件创建第 X 行的度量
我们最近将 SonarQube 服务器升级到最新版本 (5.3) 并升级了所有插件。该服务器目前仅监视由 Visual Studio Team Services(之前是 Visual Studio Online)构建的 C# 项目的单个构建。
起初,一切都很好(除了一个长期存在的问题,我将在另一个问题中描述)。但过了一段时间,我们在尝试将数据推送到 SQ
我们最近将 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 上分配工作。因此,您希望最大化每个线程的工作量,同时最小化所需的数据和信息传输量。
您希望并行执行最外层循环而不是第二个循环。因此,您需要将其中一个r_matrix
索引作为外部循环索引,以避免在写入结果矩阵时出现竞争条件。
下一件事是您要按内存存储顺序遍历矩阵(将变化更快的索引作为第二个而不是第一个下标索引)。
您可以通过以下循环/索引顺序实现两者:
在哪里
j
变化快于i
或变化快k
于。k
i
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。
不是完美的缩放,但作为一个比串行代码更快的开始。
我们最近将 SonarQube 服务器升级到最新版本 (5.3) 并升级了所有插件。该服务器目前仅监视由 Visual Studio Team Services(之前是 Visual Studio Online)构建的 C# 项目的单个构建。
起初,一切都很好(除了一个长期存在的问题,我将在另一个问题中描述)。但过了一段时间,我们在尝试将数据推送到 SQ
我们最近将 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 上分配工作。因此,您希望最大化每个线程的工作量,同时最小化所需的数据和信息传输量。
您希望并行执行最外层循环而不是第二个循环。因此,您需要将其中一个
r_matrix
索引作为外部循环索引,以避免在写入结果矩阵时出现竞争条件。下一件事是您要按内存存储顺序遍历矩阵(将变化更快的索引作为第二个而不是第一个下标索引)。
您可以通过以下循环/索引顺序实现两者:
在哪里
j
变化快于i
或变化快k
于。k
i
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。
不是完美的缩放,但作为一个比串行代码更快的开始。
c# - SonarQube for .NET,未显示所有项目的覆盖范围
我们有一个基于 Visual Studio Team Services(之前是 Visual Studio Online)构建的 .NET 解决方案。该构建将代码覆盖率数据推送到 SonarQube (5.3)。我们看到,对于某些项目,覆盖率低于预期值(与原始 *.coverage 文件中的值相比),对于其他项目,它是 0 %,而其他项目则根本没有任何价值。
不幸的是,我们的团队中没有 SonarQube 专家,但我们尝试更改所有看起来相关的设置,但没有成功。可以从哪里开始调试正在发生的事情以及导致这种行为的原因?
我很乐意发布更多信息(设置、版本等),但我不知道从哪里开始......
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 规则,但没有任何帮助。如果需要,可以共享日志文件。
请告知 - 解决方案或诊断步骤?
sonarqube - MSBuild SonarQube Runner 代理身份验证
运行 MSBuild.SonarQube.Runner.exe(2.0 版)时,我收到以下错误:
这是在 Jenkins Windows slave 上运行的,实际上,它确实需要代理身份验证。SonarQube 服务器与 Jenkins 主服务器或从服务器不同。
服务器上的更新中心已关闭,我什至尝试在 SonarQube.Analysis.xml 文件中包含以下属性(只是为了笑):
是否可以关闭 MSBuild SonarQube Runner 中的更新功能?
jenkins - SonarQube MSBuild Runner 不导入测试和代码覆盖结果
我已经配置了我的 Jenkins 构建服务器来分析我的代码并发布到我的 SonarQube 服务器。我已成功发布扫描结果,但测试和 VS 代码覆盖率结果未发布到 SonarQube。
我已为 MSBuild 开始分析步骤的 SonarQube 扫描器添加了所需的附加参数
我已配置构建步骤以通过 CodeCoverage.exe 执行覆盖率收集,如用于导入代码覆盖率和单元测试执行结果的 SonarQube wiki 页面中所述。
我还在控制台输出中观察到,SonarQube Scanner 正在解析这两个文件。IE
和
我可以做些什么来识别和解决导入测试和覆盖结果的问题?
msbuild - SonarQube msbuild runner 不会导入所有 fxcop 消息
我们在 TFS vNext 构建中使用 sonarqube 和 sonarqube msbuild 运行器。集成有效:我们在 sonarqube 中看到了预期的新分析结果。但是,并非 CodeAnalysisLog.xml 中的所有问题都导入 sonarqube。如果我们在本地运行分析,则会报告这些问题。如果我们检查构建服务器上生成的 CodeAnalysisLog.xml,文件中存在问题。然而,SonarQube 没有显示它。我们确实使用自定义规则集,但一切都在本地和服务器上正确配置。
我试图查看源代码以了解解析和过滤的工作原理,但找不到任何东西。我查看了 Jira 上的未解决问题,但没有看到任何相关的内容。
我该如何进一步调试呢?其他人也有同样的经历吗?
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 服务器,但这没有帮助)。
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”时,会显示消息 -“此组件没有覆盖详细信息”。
sonarqube - xml 中的 SonarQube C# DotCover 报告
.xml
使用 MSBuild 扫描仪导入 SonarQube 时,有什么方法可以使用 DotCover 分析的输出?
当前运行:
- 平方 5.4
- C# 插件 5.0
这是有问题的特定 SonarQube 属性键:sonar.cs.dotcover.reportsPaths
本指南中显示的示例告诉我只.html
接受扩展名。这是为什么?我来自一个我们保存报告输出.xml
然后将其转换为.html
报告的世界。有没有办法使用.xml
输出?