【问题标题】:Salesforce Code Coverage Failure: Cannot deploy Apex Trigger in Production despite 100% code coverage in SandboxSalesforce 代码覆盖率失败:尽管 Sandbox 中的代码覆盖率为 100%,但无法在生产中部署 Apex 触发器
【发布时间】:2020-08-25 13:47:20
【问题描述】:

我在 Sandbox 中的触发器的代码覆盖率为 100%,但是在将我的包上传到生产环境时出现错误

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

我真的不明白为什么会出现错误,尽管我的代码在 Sandbox 中被 100% 覆盖

我的代码没有任何其他测试类

我错过了什么? 谢谢

这是我的触发器

trigger CaseConcernAircallDateTrigger on Task (after insert) {
   
    List<Case>  cList = new List<Case>();
    for(Task t: Trigger.New) {
        if(t.WhatId!=Null && t.whatId.getsObjectType() == Case.sObjectType){
            Case c = new Case();
            c.Id = t.whatId;
            c.Last_Aircall_Logged__c = t.CreatedDate;
            cList.add(c);
          
        }
     
    }
   
    if(cList.size() > 0) update cList;
}

这是我的测试课

@isTest
  public class CaseConcernAircallDateTriggerTest {
      @isTest static void testAircallDateUpdate() {
        
        Contact con = new Contact (FirstName = 'First Name',LastName = 'Test');
        insert con;
        
        Case c = new Case(Status = 'New',ContactId = con.Id,Phone_Number__c = '123456789');
        insert c;
        
        Task t = new Task(Subject = 'Test', WhatId = c.Id);
        insert t;
       
        c.Id = t.WhatId;
        c.Last_Aircall_Logged__c = t.CreatedDate;
        update c;
       
   }
}

【问题讨论】:

    标签: triggers salesforce code-coverage apex


    【解决方案1】:

    没关系,我找到了解决方案。 我正在直接更新导致代码覆盖失败的列表。

    我只是改变了 if(cList.size() > 0) 更新 cList;到

    if(cList.size() > 0) 插入 cList;

    【讨论】:

      猜你喜欢
      • 2016-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-09
      • 2020-07-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多