我想尝试一下TDD,我选择了UnitTest ++框架,但文档几乎不存在(据我所知)。
我担心的是:在我看过的所有教程中,他们将UnitTest::RunAllTests()
放在main()
函数中。我猜它们只是为了简化解释,但我不想用我的软件。我应该把UnitTest::RunAllTests()
放在哪里,这样我每次构建软件时都可以执行它而不是在运行它时执行它?
答案 0 :(得分:4)
UnitTest::RunAllTests()
应放入单独程序的main
函数中,您可以在构建过程中编译和运行该函数。
答案 1 :(得分: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]
}