2012-06-20 54 views
3

當你修補如製作,或螞蟻,或任何其他構建工具,你實際上是在編寫代碼。如何構建系統進行單元測試?

爲什麼沒有'MUnit'或'ANTUnit'來測試這些代碼段?這樣做很有意義,因爲項目構建系統中的任何錯誤都會給使用它的人造成巨大的延遲和挫折。

一個例子(注:這將可能甚至沒有工作 - 未經檢驗的,這不是我的重點不是在這裏,):

#makefile v0 
all: main.out 

main.out: main.o x.o y.o 
    g++ $^ -o main.out 

%.o: %.cpp 
    g++ -Wall $? 

但現在我想在一個單獨的build文件夾我的目標文件:

#makefile v1 
all: main.out 

main.out: $(addprefix build/,main.o x.o y.o) 
    g++ $^ -o main.out 

build/%o: %.cpp 
    g++ Wall $< -o [email protected] 

哦,是的!這樣可行!承諾!承諾!

(但是......持續集成服務器沒有「構建」文件夾尚未...)

哦NOOOO ...團隊的構建失敗......我的錯......笨!

這將是巨大的,可以指定一個模擬項目,一個模擬的文件夾結構,然後調用make all,並驗證main.out是存在的(可以運行)

所以這裏的問題:

我的選擇是「單元測試」我的make腳本?我註定要寫一個gazillion測試shell腳本,還是已經存在一些東西?

+0

你可以發佈一個你的makefile的例子,並清楚地標識其中的單獨單元嗎? –

+0

我曾經追過的一些最糟糕的錯誤是Make Make腳本。我完全同意,Make需要更好的測試工具。我個人希望在錯誤上做一個'休息';給我一個提示,讓我看看當前的堆棧,變量等;並在出現問題時進行實時調試。 –

回答

3

如果您使用Ant,那麼有AntUnit。我使用它,它的工作原理。

我不知道,也找不到Make的單元測試框架。你可以考慮創建你自己的。