我如何让 catch2 不打印它烦人的 header?

How do I make catch2 not print its annoying header?

我正在 运行使用 catch2 构建一些单元测试。它的输出开始于:

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
test_suite is a Catch v2.13.6 host application.
Run with -? for options

好吧,我不想看到那个。我和其他 users/maintainers 都不需要提醒 catch2 版本或 运行 与 -? 的能力,当我们 运行 使用适当的参数进行单元测试并知道什么时我们在做。

但是 - -? 选项似乎没有告诉我如何禁用此消息。我可以吗?或者我必须手动“混蛋”catch2 header?

Catch2 是开源的

如果你去src/catch2/reporters/catch_reporter_console.cpp,你会发现:

void ConsoleReporter::lazyPrintRunInfo() {
    stream << '\n' << lineOfChars('~') << '\n';
    Colour colour(Colour::SecondaryText);
    stream << currentTestRunInfo->name
        << " is a Catch v" << libraryVersion() << " host application.\n"
        << "Run with -? for options\n\n";

只需删除最后一行。它应该不会破坏任何东西并解决您的问题。

或者,您可以编辑 src/catch2/interfaces/catch_interfaces_config.hpp 并添加配置选项,virtual bool printHeader(); 并提交 PR。此配置仅用于打印表头后的行,因此可用。