【问题标题】:Boost Test output spamming with "disabled" when running named test运行命名测试时使用“禁用”提升测试输出垃圾邮件
【发布时间】:2020-07-14 11:14:35
【问题描述】:

我正在按名称运行 Boost Test 测试/套件,使用:

./MyTestExe --run_test=my_test

不幸的是,我得到了数百个:

"Test case "bla" is skipped because disabled"

但我没有禁用它,我只是选择不运行它。

有没有办法删除所有这些消息?但是,如果可能的话,我想在我运行所有内容并且测试实际上被禁用时保留它们?

【问题讨论】:

  • 请在 Boost.Test github 项目中添加功能请求。

标签: c++ boost boost-test


【解决方案1】:

如果能提供一个复制品就好了。

所以我做了一个最简单的:

#define BOOST_TEST_MODULE test module name
#include <boost/test/included/unit_test.hpp>

BOOST_AUTO_TEST_SUITE(Suite)
    
    BOOST_AUTO_TEST_CASE(A) {
        BOOST_TEST_MESSAGE("Yo A");
        BOOST_TEST(1 == 3);
    }

    BOOST_AUTO_TEST_CASE(B) {
        BOOST_TEST_MESSAGE("Yo B");
        BOOST_TEST(1 == 1);
    }

    BOOST_AUTO_TEST_CASE(C) {
        BOOST_TEST_MESSAGE("Yo C");
        BOOST_TEST(3 == 3);
    }

BOOST_AUTO_TEST_SUITE_END()

哪个打印 Live On Coliru

现在让我们只运行测试用例 C:./a.out -t Suite/C:Live On Coliru

为了真正看到您提到的信息性消息,您必须要求

a.out -t Suite/C -l all Live On Coliru

选项有:

  log_level
    Specifies the logging level of the test execution.
    --log_level=<all|success|test_suite|unit_scope|message|warning|error|cpp_exception|system_error|fatal_error|nothing>
    -l <all|success|test_suite|unit_scope|message|warning|error|cpp_exception|system_error|fatal_error|nothing>

事实证明,您至少需要 unit_scopetest_suite 才能看到它。如果您只想查看自己的信息,请使用-l messageLive On Coliru

结论:

不要启用详细日志记录。

注意日志配置可能是在某处隐式进行的。例如。在自定义运行程序入口点或从配置文件中读取。此外,如果这是在某种 CI 服务器上,请检查您的构建/CI 脚本。

【讨论】:

  • "不要启用详细日志记录。"公平地说,这是对现有行为的改变。从 v1.71 升级到 v1.74 后,我的代码突然开始这样做。
猜你喜欢
  • 2018-12-01
  • 1970-01-01
  • 2011-02-22
  • 1970-01-01
  • 2016-05-07
  • 2018-08-27
  • 2015-03-17
  • 1970-01-01
  • 2018-05-31
相关资源
最近更新 更多