如何使BOOST_TEST_MESSAGE在屏幕上显示?

16

我正在学习Boost Unit Testing Framework,并且已经设置了基本功能的单元测试。 我使用 BOOST_TEST_MESSAGE 让用户知道正在运行哪些测试,但是消息不会显示在屏幕上。例如:

<code>#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();
</code>

我尝试将BOOST_TEST_LOG_LEVEL定义为all,但没有效果。我从Boost日志级别参数页面得到了这个想法,但我认为日志的概念可能与实际显示在屏幕上的内容无关。有什么想法吗?


6
你尝试过使用 <program-name> --log_level=message 吗? - HAL
1
在main()中使用putenv("BOOST_TEST_LOG_LEVEL=message")也可以。 - David Faure
1个回答

15
根据文档所述:
使用此工具生成的消息默认情况下不会出现在测试日志输出中,除非将活动日志级别门槛设置为低于或等于“message”的值。
要使这些消息出现,请在运行测试二进制文件时将环境变量BOOST_TEST_LOG_LEVEL设置为message
BOOST_TEST_LOG_LEVEL=message <your_test>

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

<your_test> --log_level=message

这段代码应该放在哪里?我把它放在测试用例 BOOST_TEST_LOG_LEVEL = message <testcase1> 中,但它无法编译。 - Zhang
@张,正如所提到的,您需要将此导出为环境变量在您的终端中。 - kynan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接