c++ Boost单元测试框架中的日志级别

k2fxgqgv  于 2023-04-01  发布在  其他
关注(0)|答案(2)|浏览(127)

我使用的是boost单元测试框架。我使用BOOST_TEST_MESSAGE函数,因此我需要将日志级别至少设置为message
通过阅读文档,我可以做到以下几点:

  • 我可以添加一些hwere boost::unit_test::unit_test_log.set_threshold_level( boost::unit_test::log_messages);但是,文档表明它通常被认为是不好的做法。
  • 我可以适当地设置环境变量BOOST_TEST_LOG_LEVEL。这对我来说是一个糟糕的解决方案,因为我将分发我的代码,而且我没有一个好的方法来约束用户在他们的bashrc中适当地设置这个环境变量。

有人知道一个正确的解决方案吗?

ttisahbt

ttisahbt1#

最好的解决方案是在运行我的二进制文件时使用命令行参数--log_level

f4t66c6m

f4t66c6m2#

我个人很喜欢你在OP中提到的第一种方法。

BOOST_TEST(0 != 1);
for (auto i=0>; i<32*1024; i++)
    BOOST_TEST(i >= 0);
BOOST_TEST(1 != 0);

有一个for循环,发出成千上万的行。我只是把它包围起来

namespace ut = boost::unit_test;
ut::unit_test_log.set_threshold_level(ut::log_warnings);

for (auto i=0>; i<32*1024; i++)
    BOOST_TEST(i >= 0);

ut::unit_test_log.set_threshold_level(ut::log_successful_tests);

测试套件的其他部分保持不变。

相关问题