我正在寫一些代碼動態CRM 在線 2011年CRM在線2011集成測試在生產環境中運行
我想有一組集成測試中 CRM在線運行並能夠檢查:
- 一些日誌輸出
- 斷言失敗
的控制權在我的本地機器上運行。
現在,我在做:
var passes = new List<string>();
var fails = new List<Tuple<string,Exception>>();
foreach(Action<StringWriter> testAction in EnumTests())
{
var log = stringWriter();
try
{
testAction(log);
passes.Add(log.ToString());
}
catch(Exception e)
{
fails.Add(log.ToString(),e);
}
}
throw new Exception("PASSES: " + string.Join("======", passes.ToArray())
+ "FAILS: " + string.Join("=======",fails.Select(f=>f.ToString()).ToArray());
我通過插件操作觸發此代碼連接到聯繫創建:
- 上傳插件
- 創建聯繫人
- 命中保存
- 下載例外數據文件
必須有更好的方法,但我根本無法在文檔或博客或論壇中找到任何引用)來通過測試觸發插件代碼(並獲取異常輸出)。
我希望能夠在插件中調用方法,然後將結果包括完整的堆棧跟蹤和日誌輸出返回到xUnit測試的上下文中。
這可能嗎?讓其他人做類似的事情嗎?當然,並不是所有的CRM 2011開發者都會陷入一個帶鼠標循環的whackamole?
NB我不喜歡在內部調試,理想情況下不希望將結果存儲到定製實體。我知道我可以屏幕抓取頁面,但我希望有一些方法可以完成相當於web服務的調用。或者說有人有一個很好的框架,可以完成所有工作(或者我可以調整)。
編輯:看起來我可能會結束,詢問是否有人反對CRM在線未來一些不錯的華廷代碼
@Jon C感謝您的回覆 - 想知道是否有人在那裏。我很熟悉如何進行單元測試和/或模擬內容和/或內部調試,我不想暫停它。我看到codeplex的東西在串行化的PluginContexts上運輸。我不想要這些 - 我想a)在** CRM Online中觸發我的代碼**的運行,而不進行屏幕掃描b)將響應返回到客戶端機器上進行解釋。對不起,如果我不清楚我的約束。我真的很難相信沒有這樣的機制,但廣泛的搜索沒有任何結果。 –
您是否希望每隔*次都返回異常數據*任何*用戶創建聯繫人,或僅在您正在測試時? –
@彼得Majeed:只有當我駕駛它通過我的測試(我不希望人們交互或同時運行它注射結果到我的結果流 - 即,我真的想避免存儲在cusotm實體或在日誌)。 –