Как запустить gtests без входа в журнал Google?

Я запускаю модульные тесты с помощью gtest. Однако я также использую google glog в тестируемом коде. К сожалению, этот вывод мешает результатам теста и выглядит беспорядочно. Как мне избавиться от вывода glog?


person cwu    schedule 08.09.2011    source источник
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
comment
Я бы рекомендовал сделать что-то вроде этого: - 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
comment
Это избавляет от вывода test. Вопрос в том, чтобы избавиться от вывода log. - person lutzky; 03.02.2014