Мне нужно временно положить main()
функция в моем объекте, чтобы проверить альтернативную функциональность (помимо простого модульного теста), но я продолжаю комментировать мои main()
функция для запуска моих модульных тестов.
Есть ли #define _KEYWORD_
чтобы CxxTest позволил этому происходить автоматически?
Вам просто нужно инкапсулировать нарушающий код с помощью директивы компилятора, основанной на определении 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()
предоставленная вами функция будет использоваться.
Других решений пока нет …