单元测试覆盖在 Sonarqube 中不可见

Posted

技术标签:

【中文标题】单元测试覆盖在 Sonarqube 中不可见【英文标题】:Unit Test Coverage not visible in Sonarqube 【发布时间】:2018-12-04 17:14:58 【问题描述】:

我正在对包含单元测试项目的解决方案进行分析,就像任何其他项目一样。但是单元测试覆盖小部件中没有“无数据”。但是如果我打开 UT 的相应文件夹/文件,我可以看到分析。如何通过添加小部件来查看单元测试覆盖率详细信息。

【问题讨论】:

您使用哪些覆盖工具(JaCoCo / Cobertura)或如何执行分析? 我没有使用任何这些工具...我正在使用声纳扫描仪进行分析。 【参考方案1】:

我没有使用任何这些工具...我正在使用声纳扫描仪进行分析。

SonarQube 不会生成代码覆盖率数据。它显示由其他工具生成的报告提供的数据。您必须配置并执行任何代码覆盖率工具,然后扫描仪会将结果上传到服务器。

了解如何为 C# 执行此操作:Code Coverage Results Import (C#, VB.NET)

有关代码覆盖率的更多信息:Seeing Coverage

【讨论】:

嗨agabrys,VS2015 企业版是否能够生成测试覆盖率报告,供声纳扫描仪使用?如果是,那么我将升级到 VS2015 企业版,目前我正在使用 VS2015 专业版,并且在测试菜单下没有“分析代码覆盖率”选项。 您必须在构建服务器上执行代码覆盖工具(执行声纳分析)。来自 VS2015 的 Analyze Code Coverage 不会帮助你。阅读有关代码覆盖工具的主题:***.com/q/276829/4944847 但是您给出的 sonarqube 链接表明 Visual Studio 代码覆盖率是获得代码覆盖率结果的 4 种方法之一。 'Visual Studio 代码覆盖率' 是否在测试菜单下暗示了“分析代码覆盖率”以外的其他内容?我假设 .coveragexml 可以从 VS 导出并且可以被声纳扫描仪使用。 但这意味着你必须手动完成。您是否在 CI 或笔记本电脑/PC 上执行分析? 我可以不从 VS 生成 .coveragexml 并使用它在 sonarqube 中获取单元测试覆盖结果而不涉及任何外部工具吗?

以上是关于单元测试覆盖在 Sonarqube 中不可见的主要内容,如果未能解决你的问题,请参考以下文章

iOS单元测试-04-覆盖率上传sonarqube

SonarQube 没有获得单元测试覆盖率

在 Postman 中获取 SonarQube 6.3.1 的覆盖率、技术债务、单元测试成功密度和单元测试失败密度 json 数据的 restapis 是啥?

即使我添加了测试单元,sonarqube 的覆盖率也始终为 0%

单元测试覆盖率报告未显示在 SonarQube 仪表板上

带有 jacoco 插件的 SonarQube 覆盖百分比显示为零,但可以看到单元测试的数量