Я запускаю модульные тесты с помощью gtest. Однако я также использую google glog в тестируемом коде. К сожалению, этот вывод мешает результатам теста и выглядит беспорядочно. Как мне избавиться от вывода glog?
Как запустить gtests без входа в журнал Google?
comment
Добро пожаловать в Stack Overflow. Не могли бы вы отредактировать свой вопрос, чтобы завершить его, пожалуйста?
- person Rob Kennedy   schedule 08.09.2011
Ответы (2)
Кажется, это работает, подавляя все сообщения журнала.
int main(int argc, char * argv[]) {
FLAGS_logtostderr = true;
FLAGS_minloglevel = 5;
google::InitGoogleLogging(argv[0]);
// Start running unit tests here
}
person
lutzky
schedule
02.02.2014
Я бы рекомендовал сделать что-то вроде этого:
- person lutzky; 21.02.2014
В Расширенном руководстве определите свой собственный пустой EventListener и обойдите весь журнал отладки, а затем удалите принтер по умолчанию из прослушивателя событий.
int main(int argc, char** argv) {
::testing::InitGoogleTest(&argc, argv);
// Gets hold of the event listener list.
::testing::TestEventListeners& listeners =
::testing::UnitTest::GetInstance()->listeners();
// Removes the default console output listener from the list so it will
// not receive events from Google Test and won't print any output. Since
// this operation transfers ownership of the listener to the caller we
// have to delete it as well.
delete listeners.Release(listeners.default_result_printer());
// Adds a listener to the end. Google Test takes the ownership.
// Basically you can define an empty class MinimalistPrinter
// derived from EmptyTestEventListener
listeners.Append(new MinimalistPrinter);
return RUN_ALL_TESTS();
}
Пример программы здесь
person
Ganesh M
schedule
10.10.2011
Это избавляет от вывода test. Вопрос в том, чтобы избавиться от вывода log.
- person lutzky; 03.02.2014