Существует ли #define _KEYWORD_ для компилятора CXXTEST, чтобы исключить блоки кода?

Мне нужно временно положить main() функция в моем объекте, чтобы проверить альтернативную функциональность (помимо простого модульного теста), но я продолжаю комментировать мои main() функция для запуска моих модульных тестов.

Есть ли #define _KEYWORD_ чтобы CxxTest позволил этому происходить автоматически?

1 ответ

Решение

Вам просто нужно инкапсулировать нарушающий код с помощью директивы компилятора, основанной на определении CXXTEST_RUNNING ключевое слово.

Например:

class myClass {
  public:
    myClass () {}
};

#ifndef CXXTEST_RUNNING
int main (int argc, char *argv[]) {
  // Temporary runner. Typically deleted upon completion
  // of alternate functionality added later in the project.
}
#endif

В этом случае при использовании инфраструктуры CxxTest main() функция будет игнорироваться в пользу main() созданный в рамках тестирования. В противном случае main() предоставленная вами функция будет использована.

Другие вопросы по тегам