我正在一个新项目中,该客户先前存在的生产代码的覆盖率仅为72%,因此不允许我部署在沙箱中完成的任何工作。
错误:
代码覆盖率失败 您的代码覆盖率为72%。您需要至少75%的覆盖率才能完成此部署。
有人对提高代码覆盖率有建议吗?
答案 0 :(得分:3)
运行此查询
SELECT ApexClassorTrigger.Name, NumLinesCovered, NumLinesUncovered
FROM ApexCodeCoverageAggregate
ORDER BY NumLinesUncovered DESC
LIMIT 10
应该可以使您更好地了解哪些类/触发器最少。其中一些将是捷足先登,花在创建/改进他们的测试上的时间将使您在总体上获得最好的结果。我的意思是,花1h修好覆盖100条线中的60条线的课程要好于覆盖4条线中的2条线的课程。在沙盒中工作,直到您> 75%
(您的沙箱可能已经过时,有人直接在生产中创建了验证规则,必填字段等,而没有部署...这就是为什么我要求在产品中编译和运行所有测试的原因)
如果有不再使用的类/方法,可以安全地删除它们-您无法使用changeset进行操作,则需要特殊的破坏性部署。现在,您可以将它们注释掉并部署该版本。只需检查这是否对您有利(我的意思是,摆脱旧代码,更容易维护,这是很好的做法,但是如果碰巧被测试覆盖了,您将不知所措)
将创建/更新的测试类添加到变更集,您应该可以将其部署到产品中。