【问题标题】:How do I get BOOST_TEST_MESSAGE to display on the screen?如何让 BOOST_TEST_MESSAGE 显示在屏幕上?
【发布时间】:2014-11-13 22:15:02
【问题描述】:

我正在摸索 Boost 单元测试框架,并设置了一个基本的功能单元测试。我正在使用BOOST_TEST_MESSAGE 让用户知道哪些测试正在运行,但消息不会显示在屏幕上。例如:

#define BOOST_TEST_MODULE MyTest

#include <boost/test/included/unit_test.hpp>

BOOST_FIXTURE_TEST_SUITE(MyTestSuite, MyTestFixture)

BOOST_AUTO_TEST_CASE(MessageTest)
{
  BOOST_TEST_MESSAGE( "no one sees this!" );
}

BOOST_AUTO_TEST_SUITE_END();

我尝试将BOOST_TEST_LOG_LEVEL 定义为all,但这没有效果。我从Boost log-level parameter page 得到了这个想法,但我认为 log 的概念可能与屏幕上实际显示的内容无关。有什么想法吗?

【问题讨论】:

  • 你试过&lt;program-name&gt; --log_level=message吗?
  • putenv("BOOST_TEST_LOG_LEVEL=message") in main(),也可以。

标签: c++ boost boost-unit-test-framework


【解决方案1】:

根据documentation

此工具生成的消息不会出现在测试日志输出中,默认值为活动日志级别阈值。要显示这些消息,必须将活动日志级别阈值设置为低于或等于“消息”的值。

在运行测试二进制文件时将环境变量 BOOST_TEST_LOG_LEVEL 设置为 message

BOOST_TEST_LOG_LEVEL=message <your_test>

或传递命令行参数--log_level:

<your_test> --log_level=message

【讨论】:

  • 这段代码放在哪里?我把它放在了测试用例BOOST_TEST_LOG_LEVEL = message &lt;testcase1&gt;,但是编译不出来。
  • @Zhang 如前所述,您需要将其导出为终端中的环境变量
猜你喜欢
  • 2016-02-02
  • 1970-01-01
  • 2018-01-28
  • 2021-11-22
  • 2018-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多