cmake <-> make и модульное тестирование: создание целей, которые не компилируются, если не названы явно - PullRequest
0 голосов
/ 02 июня 2011

Я хочу структурировать свои модульные тесты, используя gtest, в модулях. каждый модуль часто представляет собой набор из нескольких тестируемых единиц. Разрабатывая модуль, я создаю модульный тест за один раз, и после его завершения я объединяю их в один тестовый модуль для всего модуля.

Так что для иллюстрации каждый тест выглядит следующим образом.

// file test1.cc
TEST1()
{
}
TESTn
{
)
#ifdef ISOLATED_TEST_COMPILE
int main()
{
   /* google test boiler plate */
}
#endif

И файл, который объединяет тест выглядит следующим образом

#include "test1.cc"
#include "testn.cc"

int main()
{
   /* google test boiler plate */
}

Так что я не хочу, чтобы сгенерированная сборка сборки строила отдельные тесты только по имени и не включала отдельные тесты в цель "all". Весь модуль модульного тестового блока должен быть целиком.

Я не хочу make all избыточно компилировать отдельные тесты.

1 Ответ

0 голосов
/ 02 июня 2011

Если модульные тесты не производятся, быстрое и грязное было бы использовать #ifdef так же, как вы это делали выше.

Тогда вы просто оберните определения для ifdefs следующим образом.*

#ifdef ALL
  ...
#else
  #define UNIT1
  ....
#end if
...