如何获取类似于 Sonarqube 的 Salesforce 代码覆盖率报告

问题描述 投票:0回答:2

问题是,当我们开发 apex 代码,然后编写测试类,该测试类覆盖 apex 类的至少 75% 代码覆盖率时,现在当我登录到开发人员控制台时,我能够看到代码覆盖率,因为手动,代码覆盖率略有下降需要进入开发人员控制台,我想要一些可以向高级管理人员展示的关于整个组织的 Salesforce 测试代码覆盖率的报告

但是是否可以在与 sonarqube 代码覆盖率报告非常相似的复杂报告中获得此信息

提前致谢 卡罗琳

salesforce apex apex-code salesforce-lightning salesforce-communities
2个回答
1
投票

Sonarqube 了解 Apex,因此如果您已经拥有许可证,它可能比您想象的要简单。还有其他工具,例如 Clayton(我不隶属于其中任何一个)。

如果你想手工制作类似的东西......

要以更易读的格式获取这些结果,您可以从 DeveloperConsole 中的查询开始(查询选项卡,在底部勾选复选框以使用工具 API)

SELECT ApexClassorTrigger.Name, NumLinesCovered, NumLinesUncovered
FROM ApexCodeCoverageAggregate
ORDER BY NumLinesUncovered DESC
LIMIT 10

它应该让您清楚地了解哪些类/触发器最少被覆盖。其中一些将是快速的胜利,花在创建/改进测试上的时间将为您带来整体覆盖率的最佳结果。我的意思是,花 1 小时修复涵盖 100 行中的 60 行的课程比涵盖 4 行中的 2 行的课程更好。

这是每个文件的“总计”结果。如果您愿意,您可以检查每个单元测试涵盖了多少内容:

SELECT ApexTestClass.Name, TestMethodName, ApexClassOrTrigger.Name, NumLinesUncovered, NumLinesCovered, Coverage
FROM ApexCodeCoverage

如果您安装了 Salesforce DX 命令行 (sfdx-cli) 和 Visual Studio Code (vscode) 等开发人员工具,您可以做更多事情。 SFDX 会告诉您哪些行被覆盖,哪些行未被覆盖:https://salesforce.stackexchange.com/questions/232527/how-do-i-get-apex-code-coverage-statistics-when-using-salesforce -dx-视觉-stu

VSCode 允许您安装 Apex PMD 插件(PMD 是类似于 Sonarqube 的免费工具)。我怀疑它会生成一个漂亮的 PDF 来进行管理。它旨在在您开发时进行扫描,向您发出警告,就像 Word 和 Outlook 突出显示拼写错误和语法错误一样。

最后但并非最不重要的一点 - 尝试从设置中运行 Salesforce Optimizer。我不认为它会报告覆盖范围,但它可以告诉高级别的警告信号(Apex 代码很旧并且有一段时间没有触及 - 也许您不再需要该功能,也许有一个内置功能可以更好地工作) ,也许现在可以写得更简单,即使作为具有超过 1 个触发器的流程构建器对象也违反了最佳实践等)


0
投票

如果您将 Apex 代码库从 Git 存储库部署到 Salesforce 组织,请随时查看我开发的 Salesforce CLI 插件,它可以完成此任务 - https://github.com/mcarvin8/apex-code-coverage-transformer

此插件会将 Salesforce CLI 部署和测试运行期间创建的代码覆盖率 JSON 文件转换为 SonarQube 接受的通用覆盖率 XML。但您首先必须有一个遵循 Salesforce DX 项目结构的 Git 存储库(

sfdx-project.json
文件)。

© www.soinside.com 2019 - 2024. All rights reserved.