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

时间:2020-04-15 10:38:41

标签: salesforce code-coverage apex salesforce-lightning

我正在一个新项目中,该客户先前存在的生产代码的覆盖率仅为72%,因此不允许我部署在沙箱中完成的任何工作。

错误:

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

有人对提高代码覆盖率有建议吗?

1 个答案:

答案 0 :(得分:3)

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

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

应该可以使您更好地了解哪些类/触发器最少。其中一些将是捷足先登,花在创建/改进他们的测试上的时间将使您在总体上获得最好的结果。我的意思是,花1h修好覆盖100条线中的60条线的课程要好于覆盖4条线中的2条线的课程。在沙盒中工作,直到您> 75%

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

如果有不再使用的类/方法,可以安全地删除它们-您无法使用changeset进行操作,则需要特殊的破坏性部署。现在,您可以将它们注释掉并部署该版本。只需检查这是否对您有利(我的意思是,摆脱旧代码,更容易维护,这是很好的做法,但是如果碰巧被测试覆盖了,您将不知所措)

将创建/更新的测试类添加到变更集,您应该可以将其部署到产品中。