UnitTest++ and main

UnitTest++ and main

本文关键字:main and UnitTest++      更新时间:2023-10-16

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

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

UnitTest::RunAllTests()应该放在一个单独程序的main函数中,您可以将其编译并作为构建过程的一部分运行。

我们过去做过的一件事是添加一个命令行参数,使主可执行程序运行所有测试,然后退出。很容易安排一些#ifdef,以便在发布版本中编译这些代码。像这样(这不是很c++,但如果你还没有解析命令行参数,这是最简单的方法):

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