2013-04-03 87 views
2

我使用TeamCity和JUnit構建和測試了一些我正在編寫的軟件。因爲我正在使用測試驅動的開發模式,所以我構建了將測試功能如何工作的單元測試(最初它總是失敗,因爲該功能尚未實現),然後開發該功能,直到它通過所有它應該的測試。儘管未通過測試,TeamCity允許成功構建

在TeamCity中,我有兩個構建步驟:第一個是編譯我的項目的Maven構建步驟,第二個是另一個只運行單元測試的Maven構建步驟。我想要做的是找到一種方法,讓「構建成功」由第一步的成功或失敗決定,然後獲得作爲構建的單獨部分通過或失敗的所有測試的列表登錄。這可能嗎?

回答

0

好吧,事實證明,我想做的事情需要在Maven POM文件進行配置,像這樣:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <configuration> 
     <testFailureIgnore>true</testFailureIgnore> 
    </configuration> 
</plugin> 

這使得構建完成,如果一些測試失敗是這樣的: Successful Build with Failed Tests

3

您可以通過進入構建的設置選項卡並修改「構建失敗條件」選項來更改TeamCity中構建的失敗情況。

enter image description here

您可以關閉「至少一個測試失敗」的故障情況。只要編譯了一切,這將允許構建成功。

+0

這是此答案與Brendon或V0rin的答案的組合,以使其正常工作。 – 2015-10-24 01:19:08

0

因爲我使用的是測試驅動的開發模式,我建立單位 測試,將測試一項功能應該如何工作,然後我發展 功能,直到它通過了所有測試中,它應該。

對不起,這不是測試驅動開發。在TDD中,你總是隻寫一個失敗的測試,然後你實現足夠的代碼來滿足測試期望,然後重構。當所有測試(新的和新的測試)都通過時,您可以將更改與其他人相集成。

可以按照自己想要的方式設置TeamCity,但它沒有任何意義。

+2

對不起,但這是不正確的。 TDD實踐外線風格將包括一個失敗的「驗收」測試,直到它通過它將成爲「迴歸」測試。開發中驗收測試可以(也應該)失敗。迴歸測試不應該失敗。不是每個人都像你一樣練習TDD。 – 2013-05-17 14:38:47

+1

我跟隨TDD,Kent Beck解釋了它。否則,它不是TDD,而是先測試。 – 2013-05-18 11:54:04

2

對於TeamCity將此行-Dmaven.test.failure.ignore=true添加到Build Step作品中的「其他Maven命令行參數:」

相關問題