如何减少 googletest 的冗长(覆盖默认侦听器的两个方法)?

How to reduce verbosity of googletest (overwrite two methods of the default listener)?

我想抑制来自 googletest 的过于冗长的“运行”和“OK”输出行,同时保留来自默认侦听器的所有其他输出。

https://github.com/google/googletest/blob/master/docs/advanced.md#defining-event-listeners 描述:

(1) 如何用自定义侦听器替换默认侦听器,或

(2) 如何添加额外的监听器。

不幸的是,这并不能完全解决我的问题。修改 (1) 也会抑制其他消息,除非我重新实现它们。修改(2)没有覆盖默认方法,只是增加了额外的输出。

对于想要的解决方案,我的监听器将从默认监听器继承,而不是从 EmptyTestEventListener

如何实现?

默认侦听器称为 PrettyUnitTestResultPrinter。它在 src/gtest.cc 中实现。不幸的是,它没有在 .h 文件中 声明 。因此没有直接的方法继承它。

因此,解决我的问题的最简单方法是一个残酷的方法:将所有 googletest 复制到我项目中的 ThirdParty/gtest 目录,然后 patch src/gtest.cc .只需搜索 "RUN" 和 "OK" 并删除不需要的输出命令。