2012-08-30 110 views
2

我知道我可以指示Maven在失敗後繼續使用-fae/- fail-at-end命令行選項。有沒有辦法將此行爲設置爲給定模塊的默認值?默認情況下是否可以啓用-fae/- fail-at-end?

一些背景:
我正在從一個Ant構建轉移到一個基於Maven的構建,並且即使在單元測試失敗時,團隊中的其他開發人員也可以使用構建完成。使用200個模塊的產品,構建需要相當長的時間,如果開發人員可以從開始就看到所有未通過測試,而無需記住添加-fae選項,那將是理想的選擇。

通過閱讀Maven文檔,我感覺到答案是一個響亮的「不」,但我只想涵蓋我的基礎,並確保沒有某種無證方式來做到這一點......

謝謝!

回答

1

要跳過測試失敗,您可以使用屬性maven.test.failure.ignore。當然,如果你有父母和孩子的poms,你可以使用每個模塊的這個屬性。

+0

謝謝,這很有用,然而失敗的測試然後被錯誤地標記爲成功。這與-fae的行爲不同,我更喜歡這種行爲。 – hairyhenderson

+0

標準配置中的Maven使用surefire插件進行測試 - 如果測試失敗並進行哪些測試,它會生成帶有信息的XML文件。大多數CI工具都可以解析Surefire XML來在漂亮的圖表上顯示這些統計信息,並顯示有多少測試失敗。 – kodstark

+0

是的,這對CI很有用(對我們的Hudson CI構建會很有用),但對本地開發人員構建沒有任何用處。如果他們有maven.test.feailure.ignore集合,運行構建(失敗的單元測試),確定(錯誤地)構建是成功的,那麼他們會將破壞的測試提交給源代碼控制並破壞CI構建。我認爲唯一合理的選擇是強制用戶在命令行上使用-fae運行它們的構建,或者提供一個.bat或.cmd腳本來提供該選項。 – hairyhenderson

2

檢查完Maven源代碼後,我可以確認這是默認情況下不能配置的。

中打開了Maven的跟蹤現有問題:http://jira.codehaus.org/browse/MNG-5342(請投票,如果你還希望它 - 只注意到你沒有打開它,所以你不能在上面投票;))...

問候,

相關問題