【问题标题】:ctest won't output stdout from printf if test fails如果测试失败,ctest 不会从 printf 输出标准输出
【发布时间】:2020-11-14 04:30:27
【问题描述】:

在一个非常简单的测试用例中,如果测试失败,则不会显示 printf() 的输出。我使用 µunit 作为框架,测试例程本身很简单:

static MunitResult test(...)
{
    // Some variable initialisation
    printf("Test running...\n");

    //Do the test
    bool bResult = tested_method();
    munit_assert(bResult == true);
}

如果我注释掉断言,即测试成功,将显示 printf 输出。不是如果测试失败。运行其他测试例程按预期工作,并正确显示 printf() 的输出。

我这样调用 ctest 来运行测试:

ctest -V --output-on-failure -R '.*nameoftest.*'

整个运行在 Windows 10 上的 docker 容器中。

如何让 ctest 显示测试例程在标准输出上发送的所有输出? 感谢您的帮助,祝您有愉快的一天!

【问题讨论】:

    标签: ctest


    【解决方案1】:

    就我而言,解决方案是直接调用生成的 elf 可执行文件,而不是通过 ctest。似乎 ctest 添加了另一层我无法绕过的输出重定向。通过直接调用二进制文件,我可以获得我想要的所有输出和日志。 这不是问题的直接解决方案,而是我认为可以接受的解决方法。

    【讨论】:

      猜你喜欢
      • 2013-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多