2016-04-25 60 views
2

我想要抑制googletest中過度冗長的「RUN」和「OK」輸出行,同時保留默認偵聽器的所有其他輸出。如何減少googletest的冗長(覆蓋默認偵聽器的兩種方法)?

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

(1)如何由定製聽者替換默認監聽器,或

(2)如何添加額外的監聽器。

不幸的是,這並不能完全解決我的問題。修改(1)也會抑制其他消息,除非我將其重新實現。修改(2)不會覆蓋默認方法,但僅添加其他輸出。

對於想要的解決方案,我的偵聽器將繼承默認偵聽器,而不是從EmptyTestEventListener繼承。

如何實現這一目標?

回答

1

默認偵聽器名爲PrettyUnitTestResultPrinter。它在src/gtest.cc執行。遺憾的是,.h文件中聲明爲。因此沒有直接的方法從它繼承。

所以我的問題最簡單的解決方案是一個殘酷的一個:所有的googletest複製到ThirdParty/gtest目錄在我的項目,並補丁src/gtest.cc。只需搜索「RUN」和「OK」並刪除不需要的輸出命令。

+0

在https://github.com/google/googletest/issues/771報告爲功能請求。 –