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

Code Coverage Failure Your code coverage is 72%. You need at least 75% coverage to complete this deployment

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

错误:

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

有人对如何增加代码覆盖率有建议吗?

  1. 编译生产环境中的所有 classes
  2. 运行 所有单元测试(本地单元测试,不需要 运行 托管包附带的测试)
  3. 转到开发人员控制台、查询编辑器,勾选底部的工具 API 复选框
  4. 运行 这个查询

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

它应该让您知道哪些 classes/triggers 最少被覆盖。其中一些将是速战速决,花在 creating/improving 他们的测试上的时间将使您在整体覆盖范围内获得最佳结果。我的意思是花 1 小时修复 100 行中有 60 行的 class 比 4 行中有 2 行的 class 更好。在沙盒中工作,直到您达到 > 75%

(您的沙盒有可能已经过时,并且有人在生产中直接创建了验证规则、必填字段等而没有部署...这就是为什么我要求编译 & 运行 产品中的所有测试)

如果有 classes/methods 不再使用并且删除它们是安全的 - 你不能用变更集来做,你需要一个特殊的破坏性部署。现在您可以将它们注释掉并部署该版本。看看这是否对你有好处(我的意思当然是摆脱旧代码,更容易维护......但是如果它恰好被测试覆盖你会搬起石头砸自己的脚)

将 created/updated 测试 class 添加到变更集,您应该能够将其部署到产品中。