如何减少googletest的详细程度(覆盖默认侦听器的两种方法)

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

本文关键字:侦听器 默认 两种 覆盖 方法 程度 googletest 何减少      更新时间:2023-10-16

我想抑制googletest中过于冗长的"RUN"和"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目录中,然后修补src/gtest.cc。只需搜索"运行"和"确定"并删除不需要的输出命令。