代码覆盖率失败您的代码覆盖率为 72%。您需要至少 75% 的覆盖率才能完成此部署

Edw*_*gma 2 code-coverage salesforce apex salesforce-lightning

我正在开发一个新项目,其中客户预先存在的生产代码覆盖率低,只有 72%,因此我无法部署在沙箱中完成的任何工作。

错误:

代码覆盖率失败您的代码覆盖率为 72%。您需要至少 75% 的覆盖率才能完成此部署。

有没有人有关于如何增加代码覆盖率的建议?

eye*_*eam 5

  1. 编译生产中的所有类
  2. 运行所有单元测试(本地测试,无需运行托管包附带的测试)
  3. 转到开发者控制台,查询编辑器,勾选底部的工具 API 复选框
  4. 运行此查询

    SELECT ApexClassorTrigger.Name, NumLinesCovered, NumLinesUncovered
    FROM ApexCodeCoverageAggregate
    ORDER BY NumLinesUncovered DESC
    LIMIT 10
    
    Run Code Online (Sandbox Code Playgroud)

它应该让您很好地了解哪些类/触发器最少被覆盖。其中一些将是快速的胜利,花在创建/改进他们的测试上的时间将使您在总体覆盖范围内获得最佳结果。我的意思是,最好花 1 小时修复涵盖 100 行中的 60 行的课程,而不是涵盖 4 行中的 2 行的课程。在沙盒中工作,直到你> 75%

(有可能你的沙箱已经过时了,有人在没有部署的情况下直接在生产中创建了验证规则、必填字段等......这就是为什么我要求在 prod 中编译和运行所有测试)

如果有不再使用的类/方法并且删除它们是安全的 - 你不能用变更集来做,你需要一个特殊的破坏性部署。现在,您可以将它们注释掉并部署该版本。只需检查这对您是否有益(我的意思当然是摆脱旧代码,更容易维护......

将创建/更新的测试类添加到变更集,您应该能够将其部署到生产环境。

  • 从开发控制台?确保选中查询编辑器底部的“工具 API”复选框。从 REST API(例如 workbench.developerforce.com -> Utilities -> REST Explorer)然后 `/services/data/v50.0/tooling/query?q=SELECT+ApexClassorTrigger.Name,+NumLinesCovered,+NumLinesUncovered+FROM +ApexCodeCoverageAggregate+ORDER+BY+NumLinesUncovered+DESC+LIMIT+10` (2认同)