Sonarqube understands Apex 因此,如果您已经拥有许可证,它可能比您想象的要简单。还有其他工具,例如 Clayton(我也不隶属于)。
如果你想手工制作类似的东西......
要以更易读的格式获得这些结果,您可以从 DeveloperConsole 中的查询开始(查询选项卡,在底部勾选复选框以使用 Tooling 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-visual-stu
并且 VSCode 允许您安装 Apex PMD 插件(PMD 是类似于 Sonarqube 的免费工具)。我怀疑它会为管理生成一个漂亮的 PDF。它旨在在您开发时进行扫描,向您发出警告,就像 Word 和 Outlook 突出显示拼写错误和语法错误一样。
最后但同样重要的是 - 尝试从设置中运行 Salesforce Optimizer。我不认为它会报告覆盖率,但它可以告诉高级警告信号(Apex 代码是旧的并且有一段时间没有被触及 - 也许你不再需要那个功能,也许有一个更好的内置,也许它现在可以写得更简单,即使作为流程构建器;有超过 1 个触发器的对象违反最佳实践等)