2011-09-18 68 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] 

}