2013-10-11 75 views
2

在C或C++,如果我有具有以下結構的程序:空調機組測試功能

..includes.. 
..defines.. 

void function_one(int i) { 
    ... 
} 

void function_two(const char * str) { 
    ... 
} 

int main(int argc, char *argv[]) { 
    ... 
} 

保存爲main.c/cpp

我該如何編寫一個新文件test.c/cpp,我可以在這裏調用main.c/cpp中的函數?

我怎麼現在做它:

編譯標誌:-etest_main
文件進行編譯:main.c test.c
運行測試輸出:Blank no errors

我的測試主要版畫「這裏」,但林不知道爲什麼測試可執行文件不是。

+0

您可能希望在代碼段中添加更多的細節,例如哪裏會打印「here」 –

回答

5

看看CUnit,所以你不必重新發明輪子。這裏是他們的開發入門doc

它是xUnit系列測試框架的一部分,已經存在多年。

+0

這將如何解決提問者在主函數旁邊測試函數的問題? – villekulla

0

不能輕鬆測試與main函數駐留在同一編譯單元中的函數。

可能的解決方案:

分裂您main.{c/cpp}到兩個源文件(編譯單元)。一個文件只能包含main函數,其他文件只能包含所有其他函數。在進行單元測試時,不要在包含單個主函數的編譯單元中鏈接。

或者,編譯單元測試時使用宏來排除main函數。

+1

或者使用裝載程序的入口點選項從「main」以外的某個條目開始。這使得「主要」只是另一個功能。 – mpez0

+0

@ mpez0請參閱http://stackoverflow.com/a/3379260/2824853這可能會引入其他問題... – villekulla