2009-09-16 36 views
2

我在使用生成文件構建項目的hudson服務器中添加了一個新作業。當單元測試失敗時,生成不會被標記爲不穩定

執行shell命令:

#!/bin/bash 
cd $JOB_NAME 
make 

我的makefile文件看起來像這樣

SDK_31 = iphonesimulator3.1 
TARGET_DEV = myProject 
TARGET_TEST = unitTest 

all: debug 
debug: 
     xcodebuild -sdk ${SDK_31} -target "${TARGET_DEV}" -configuration Debug 
     xcodebuild -sdk ${SDK_31} -target "${TARGET_TEST}" -configuration Debug 

clean: 
     xcodebuild -alltargets clean 
     rm -rf build 

但是,當哈德森建設項目,一些單元測試失敗,但構建標記爲成功。

我該如何做一個「不穩定的項目」?

最好的問候,

回答

2

您應該配置哈德森通過啓用「發佈JUnit測試結果報告」生成後的行動記錄單元的測試結果。

post-build actions http://img141.imageshack.us/img141/5136/hudsonjunit.png


更新:如果你不能得到JUnit的XML輸出,你應該能夠使用Text-finder plugin更改構建狀態:

這個插件可以讓你在您指定的文件中搜索關鍵字並使用該關鍵字將構建標記爲成功或失敗。

+0

感謝您的回答。 因爲它不是一個java項目,所以我不使用JUnit進行單元測試,所以沒有TEst報告XML。但也許我需要一個插件來使用哈德森構建狀態下的單元測試結果。我會檢查這個。 Regards, – Quentin 2009-09-16 10:06:12

+0

你的構建信號如何失敗呢? – 2009-09-16 13:41:55

+0

實際上,控制檯中的構建結果如下所示: -------------------- Test Suite'/ Users/user/Documents/workspace/iPhone/sandbox/app /build/Debug-iphonesimulator/unitTest.app'於2009-09-17 13:44:44 +0200完成。 在1.055(1.055)秒 ... ** BUILD SUCCEEDED執行的4次測試,用1個故障(1意外)** ------------------ -------- 看來我應該使用像Hudson Text-finder插件和Warnings插件這樣的插件來獲得這個單元測試失敗。 Regards – Quentin 2009-09-17 11:46:49

1

我發現Christian Hedin這個方便的ruby腳本,它將OCUnit測試(Xcode使用的格式)的輸出轉換成JUnit xml文件(Hudson使用的格式)。

你可以抓住在GitHub上的腳本: http://github.com/ciryon/OCUnit2JUnit

以及如何使用它的解釋,這裏是他的博客看: http://blog.jayway.com/2010/01/31/continuos-integration-for-xcode-projects/

基本上,你管xcodebuild聯編入ocunit2junit.rb用這樣的命令:

 
/usr/bin/xcodebuild -target UnitTests | /usr/local/bin/ocunit2junit.rb 

它將xml文件放入它在項目文件夾根目錄下創建的test-reports文件夾中。然後告訴Hudson將test-reports/*.xml工件複製爲JUnit結果並設置好。

此設置將允許Hudson正確識別單元測試是否通過或失敗,並正確標記構建的穩定性。

我一直在使用它一個月,它工作的很好。設置非常簡單。

+1

我建議重定向stderr,以便在解析器中生成錯誤,並且構建可能會失敗:/ usr/bin/xcodebuild -target UnitTests 2>&1 | /usr/local/bin/ocunit2junit.rb – dhackner 2011-02-09 21:12:21

+0

這將是一個很好的補充。 :) – 2011-02-10 02:37:23

相關問題