UnitTest ++和main

时间:2011-09-18 08:36:45

标签: c++ unit-testing

我想尝试一下TDD,我选择了UnitTest ++框架,但文档几乎不存在(据我所知)。

我担心的是:在我看过的所有教程中,他们将UnitTest::RunAllTests()放在main()函数中。我猜它们只是为了简化解释,但我不想用我的软件。我应该把UnitTest::RunAllTests()放在哪里,这样我每次构建软件时都可以执行它而不是在运行它时执行它?

2 个答案:

答案 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]

}