2013-04-10 45 views
1

我們正在針對FxCop與TFS2010集成的具體要求。要求如下。 - 執行build.in特定時間間隔(已有方法) - 每次構建後運行FxCop。 (這太簡單了,已知) - 如果有任何失敗,需要創建一個TFS錯誤項並分配給上次登錄文件的人。FxCop -TFS集成:如果FxCop失敗,需要在最後一次檢查時創建TFS錯誤

我們知道'門控入住'是最好的方式。但由於某些原因,我們不能採納這一點。我們面臨的挑戰是創建針對每個文件的最後檢查錯誤。

以前有人做過這種類型的解決方案嗎?有沒有公​​開的代碼可以做到這一點?

在此先感謝。

+0

關於誰改變了每個文件似乎相當具體,doubtfull會出現在公共場合,更常見的情況下,這樣的實現,你提到的是CI建立與門控簽入,另一個選項是最後一人的情況下,部署簽入策略以在簽入前運行FxCop。 使用api的解決方案並不是非常困難 - 您需要一個構建活動,其中包含FxCop錯誤列表(或僅包含錯誤文件),並定位該項目並從源代碼控制歷史記錄中獲取其上一次簽入,併爲提交者創建錯誤。 – drk 2013-04-10 13:31:39

+0

謝謝drk。我們使用TFS sdk開始開發。我們正在尋找任何公開的類似解決方案/代碼,以便我們避免編碼:-)。 – 2013-04-11 06:03:42

+0

我可以建議的唯一項目是http://tfsbuildextensions.codeplex.com/,但我懷疑他們會有這種情況,但這仍然是您自己努力的一個很好的示例和/或指導方針。 – drk 2013-04-11 10:12:21

回答

2

它通過編碼整個部分完成。其基本思想是:

  1. 以最新,運行exsting構建腳本()產生PDB以及
  2. 在構建腳本的末尾使用FxCopCmd開始FxCops並得到輸出到xml文件
  3. 解析XML,找出XML消息的節點包含失敗的評論
  4. 從上面的XML節點
  5. 提取代碼文件路徑地圖的文件路徑TFS路徑(即C:\代碼TFS路徑開始$ \ code)
  6. 查找最後一次檢查的人的詳細信息
  7. 創建並向該人員分配錯誤。

這是專門針對我們的項目,我們無法實現的門控簽入,由於大的代碼庫和高頻代碼檢查插件。但必須實施自動化審查。

這可以被關閉