2012-11-07 28 views
1

我想部署一個小改動,觸發和我得到約(0%)的單元測試覆蓋率不足的警告另一個觸發(的setTitle如下圖所示)的Salesforce:CallReport觸發器不點火 - 測試失敗

這裏有一個測試(請看下面),但由於某種原因,它沒有得到考慮。此測試的定義類似於其他測試成功運行,但在這種情況下觸發器未被調用(導致警告覆蓋不足)

任何想法或建議,我可以看看,如果有任何方法可以獲得過去測試?

觸發測試:

Call_Report__c c = new Call_Report__c(name='test cr', opportunity__c=o.id); 
insert c; 

觸發聲明:

trigger setTitle on Call_Report__c (before insert) 

謝謝!

回答

0

我認爲最好的辦法是嘗試在目標組織中手動運行單元測試並檢查調試日誌。還可以從UI手動檢查功能是否仍然按預期運行。

一些提示:

  1. (僅適用部署到沙箱時)作爲,因爲它聽起來你確定觸發是活動的愚蠢?當您從UI或伴隨元數據中的狀態字段編輯複選框時xml
  2. 類似複選框 - 觸發器是否有效?如果它正在調用同時修改的類的方法,則會出現問題。
  3. 你對Call_Report__c任何新近推出的驗證或測試(如機會)使用的任何先決條件:
    • 域標記爲字段定義要求,
    • 但你傳遞一個縮短的文本字段大小過長的字符串
    • 驗證規則(不是Call_Report__c因爲these are checked later),但機遇等
  4. 你能添加一些system.debug()的測試,以確保機會你正在使用創建好。另外 - 有時開發人員過多以音頻爲中心,不要拋出異常,但會吞下它們並放入VF錯誤信息,因此請檢查ApexPages.hasMessages()
  5. (當時越來越愚蠢的東西);)類和函數被標記爲isTest/testmethod?這是對象的唯一觸發器嗎?如果還有更多before insert - 您無法保證訂單,也許在那裏失敗了?
  6. ...
+0

你好!感謝您的詳細回覆,您在這裏得到了一些很棒的想法,我會仔細閱讀這些內容,看看其中是否有哪些可以幫助解決問題。感謝您的意見! – noob101