2011-09-18 69 views
1

我想給TDD一個嘗試,我選擇了UnitTest ++框架,但文檔幾乎不存在(據我所知)。UnitTest ++和main

我的擔心是這樣的:在我見過的所有教程中,他們將UnitTest::RunAllTests()放在main()函數中。我猜他們只是爲了簡化說明,但我不想用我的軟件。我應該在哪裏放UnitTest::RunAllTests(),以便我每次構建軟件時都可以執行,而不是在運行時執行它?

回答

4

UnitTest::RunAllTests()應該放入單獨程序的main函數中,該函數是作爲構建過程的一部分編譯和運行的。

0

我們過去做過的一件事是添加一個命令行參數,它使主要可執行文件運行所有測試,然後退出。安排一些#ifdefs是相當容易的,這樣這些代碼就可以在發佈版本上編譯出來。就像這樣(它不是非常C++,但如果你不解析命令行參數已經是最簡單的方法):

int main (int argc, char *argv[]) 
{ 
#ifdef DEBUG 
    if (argc > 1 && !strcmp(argv[2], "-t")) 
    { 
    return UnitTest::RunAllTests(); 
    } 
#endif 

    [rest of program] 

}