我想給TDD一個嘗試,我選擇了UnitTest ++框架,但文檔幾乎不存在(據我所知)。UnitTest ++和main
我的擔心是這樣的:在我見過的所有教程中,他們將UnitTest::RunAllTests()
放在main()
函數中。我猜他們只是爲了簡化說明,但我不想用我的軟件。我應該在哪裏放UnitTest::RunAllTests()
,以便我每次構建軟件時都可以執行,而不是在運行時執行它?
我想給TDD一個嘗試,我選擇了UnitTest ++框架,但文檔幾乎不存在(據我所知)。UnitTest ++和main
我的擔心是這樣的:在我見過的所有教程中,他們將UnitTest::RunAllTests()
放在main()
函數中。我猜他們只是爲了簡化說明,但我不想用我的軟件。我應該在哪裏放UnitTest::RunAllTests()
,以便我每次構建軟件時都可以執行,而不是在運行時執行它?
UnitTest::RunAllTests()
應該放入單獨程序的main
函數中,該函數是作爲構建過程的一部分編譯和運行的。
我們過去做過的一件事是添加一個命令行參數,它使主要可執行文件運行所有測試,然後退出。安排一些#ifdefs是相當容易的,這樣這些代碼就可以在發佈版本上編譯出來。就像這樣(它不是非常C++,但如果你不解析命令行參數已經是最簡單的方法):
int main (int argc, char *argv[])
{
#ifdef DEBUG
if (argc > 1 && !strcmp(argv[2], "-t"))
{
return UnitTest::RunAllTests();
}
#endif
[rest of program]
}