UnitTest ++ и основной - PullRequest
       9

UnitTest ++ и основной

1 голос
/ 18 сентября 2011

Я хочу попробовать TDD, и я выбрал инфраструктуру UnitTest ++, но документации почти не существует (насколько мне известно).

Меня беспокоит следующее: во всех уроках, которые я видел, они помещают UnitTest::RunAllTests() в функцию main(). Я предполагаю, что они делают это только для упрощения объяснения, но я бы не хотел этого с моим программным обеспечением. Где я должен поместить UnitTest::RunAllTests(), чтобы он мог выполняться каждый раз, когда я собираю программное обеспечение, но не при его запуске?

Ответы [ 2 ]

4 голосов
/ 18 сентября 2011

UnitTest::RunAllTests() следует поместить в функцию main отдельной программы, которую вы компилируете и запускаете как часть процесса сборки.

0 голосов
/ 30 августа 2012

Одна вещь, которую мы сделали в прошлом, это добавление аргумента командной строки, который заставляет главный исполняемый файл выполнить все тесты и затем завершиться.Довольно просто расположить некоторые #ifdefs так, чтобы этот код компилировался в сборках релиза.Примерно так (это не очень C ++, но если вы уже не анализировали аргументы командной строки, это самый простой способ сделать это):

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

  [rest of program]

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...