2012-08-31 24 views
0

我在沙盒中創建了觸發器,並且也運行了測試,它覆蓋了100%。但是,當部署到生產服務器時,它會發出消息部署錯誤:跨所有Apex類和觸發器的平均測試覆蓋率爲50%,至少需要75%的測試覆蓋率。Salesforce生產服務器顯示比沙箱(100%)少的代碼覆蓋率(50%)?

幫我看看這個......?

trigger TestTrigger on Case (before insert,before update,after insert) 
{ 
    Case ca = Trigger.new[0]; 
    String sub = ca.Subject; 



    if(sub.toUpperCase().startsWith('POP') || sub.toUpperCase().startsWith('POI')) 
    {  




    } 
} 
+0

在嘗試部署觸發器之前,當您運行所有測試時,您的生產覆蓋百分比是多少?運行所有測試時,沙盒中是否有錯誤?當你運行所有測試時,你的沙盒中的總覆蓋率是多少,而不僅僅是涉及這個觸發器的覆蓋率?你能發佈你的觸發代碼和測試代碼嗎? – Tezyn

+0

沙箱中沒有錯誤,當我一次運行所有測試時,沙盒代碼覆蓋率爲100%。 – Ayyappak

+0

嘗試運行生產中的所有測試,並在添加此觸發器和測試類之前查看%是什麼。它是否低於75%? –

回答

1

有可能是這幾個原因:

  • 是您的測試類依賴於數據或自定義設置,只有在沙箱中存在嗎?
  • 你在生產中是否有額外的類或代碼?這甚至可以是已安裝軟件包的形式等。

測試覆蓋率是基於測試的Apex語句(或行)總數除以組織中的Apex語句總數計算得出的。

+0

我粘貼了我的觸發器和測試用例。我的測試依賴數據,我在生產服務器上有額外的類。 – Ayyappak

+0

謝謝,我沒注意到。我依賴一些僅存在於沙箱中的Account對象。 – Ayyappak

相關問題