gpt4 book ai didi

c++ - 减少 gtest 的输出,使其看起来类似于 cxxtest 的输出

转载 作者:行者123 更新时间:2023-11-30 04:09:01 26 4
gpt4 key购买 nike

我有一组使用 gtest 作为框架的单元测试。

构建并执行,输出如下所示:

gtest output

我希望输出类似于使用 cxxunit 时的输出(. 测试通过时,失败时详细错误)。如果可能的话,用颜色。

如何做到这一点?


如果我不清楚,我正在寻找代码以及如何执行此操作的确切方法。


输出应该是这样的:

Executing dummy_tests .....
../code/app/unit_tests/unittest_dummy.cpp:25: Failure
Value of: 2
Expected: 1
..
FAILED

我正在尝试使用 this example并创建自定义监听器。但是该示例没有彩色输出,并且在输出中打印了很多消息。

至于彩色输出,开发者实现了ColoredPrintf()函数。

至于我面临的特殊问题是缺少文档:

  • 如何在程序启动时获取有关整个测试套件的信息? (我猜在 OnTestProgramStart() 方法中)
  • 如何获取有关测试是否失败的信息? (OnTestProgramEnd()?还是其他方法?)

最佳答案

您提到的文档页面有一个指向 sample code 的链接这回答了你的问题。您可以通过以下方式在 OnTestProgramStart() 或更高版本中枚举测试用例和其中的测试:

UnitTest& unit_test = *UnitTest::GetInstance();
for (int i = 0; i < unit_test.total_test_case_count(); ++i) {
const TestCase& test_case = *unit_test.GetTestCase(i);
for (int j = 0; j < test_case.total_test_count(); ++j) {
const TestInfo& test_info = *test_case.GetTestInfo(j);
fprintf(stdout, "%s.%s\n", test_case.name().c_str(),
test_info.name().c_str());
}
}

确实可以在OnTestProgramEnd()中收集有关测试状态的信息:

virtual void OnTestProgramEnd(const UnitTest& unit_test) {
fprintf(stdout, "TEST %s\n", unit_test.Passed() ? "PASSED" : "FAILED");
fflush(stdout);
}

ColoredPrintf() 在外部不可用;您可以将其代码复制到您的项目中。

关于c++ - 减少 gtest 的输出,使其看起来类似于 cxxtest 的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21553669/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com