2010-02-08 75 views
1

我正在建立一個構建系統,並希望在儀表板和構建失敗電子郵件中的「項目報告」部分中顯示構建失敗的任務。CruiseControl.NET中報告失敗的任務

目前我有三個任務:

  • SourceControl
  • 的MSBuild
  • 單元測試(使用gallio.echo從CC.Net EXEC任務)

如果其中一個後兩個失敗它不是從電子郵件或生成報告頁面不明顯哪個任務失敗的構建。我需要通過日誌來找出錯誤發生的位置。我想至少知道第一眼看不到什麼任務。

這裏是最好的CruiseControl的那樣 - 在儀表板主頁:

msbuild fail http://img38.imageshack.us/img38/1018/msbuildfail.png alt text http://img25.imageshack.us/img25/4688/galliofail.png

現在,這是不夠的:

  1. 當您單擊失敗的任務是不可見在該構建的項目或構建報告上。

  2. 這些信息根本不在日誌文件中。這意味着我無法通過黑客入侵XSL來將其收錄到電子郵件中。

  3. 由於我的構建任務將是唯一的MSBuild任務,因此可以將其稱爲MSBuildTask。對於可執行任務,情況並非如此,因爲我至少會有另外一兩個可能會失敗的情況。我需要給他們描述性的名字。我的Gallio exec任務有描述節點,但我不確定它在哪裏使用。

    <exec>
    <description>Unit Tests</description>
    <executable>$(path.gallio)</executable>
    </exec>

回答

1

不是一個很好的解決方案,但是您可以使用目標上的OnError屬性來記錄某些東西,即使它必須有些靜態。另一種選擇是記錄每個成功的步驟,然後使用XSL last()獲取最後一個成功的步驟。它很糟糕,但它至少比以前更多。

+0

很酷,我會盡力去做。 – 2010-02-19 01:30:21

0

在我看來,你沒有合併的MSBuild的和加利奧任務輸出。我不記得我腦海中的正確語法(並且CruiseControl.NET網站似乎已關閉),但是如果您發佈了您的配置文件,我可能會幫助您。

+0

是的,日誌得到合併,它在'xmllogger'節點之前的'publishers'部分完成。所有來自msbuild和gallio任務的東西都會將其記錄到日誌文件中,這只是CruiseControl對此做的任何事情。 – 2010-02-09 22:07:38

3

我是ccnet的開發人員之一。問題已被記錄。 http://jira.public.thoughtworks.org/browse/CCNET-1825

+0

太好了,謝謝你這樣做。 – 2010-02-22 10:42:59

+0

問題已解決。從6910或更高版本構建。 您現在將看到儀表板和cctray中任務的描述。 如果有其他需要,請隨時與我們聯繫。 http://groups.google。com/group/ccnet-user http://groups.google.com/group/ccnet-devel – Williams 2010-02-27 19:17:22