【问题标题】:c++ BOOST_TEST not in scopec ++ BOOST_TEST不在范围内
【发布时间】:2016-06-28 18:20:22
【问题描述】:

我使用的是 boost 1.58 版

Boost 似乎安装正确,以下代码编译并运行正确(第三次检查时出错):

#define BOOST_TEST_MODULE basics_test

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

BOOST_AUTO_TEST_CASE( basics_test ) {
  BOOST_CHECK(1 == 1);
  BOOST_CHECK(1 + 2 < 4);
  BOOST_CHECK(1 == 2);
}

但是,当我尝试从站点 http://www.boost.org/doc/libs/1_59_0/libs/test/doc/html/boost_test/testing_tools/boost_test_universal_macro.html 运行第二个示例时,出现错误:

test.cpp: In member function ‘void test_op_reportings::test_method()’:
test.cpp:20:20: error: ‘BOOST_TEST’ was not declared in this scope
   BOOST_TEST(a == b);

当我将 BOOST_TEST 的每个实例更改为 BOOST_CHECK 时,代码编译并正常运行。我正在使用 g++;当我将 g++ 配置为使用 g++ -std=c++11 test cpp -o main 中的 c++11 时,我得到了同样的错误。

我应该如何解决这个问题?

【问题讨论】:

    标签: c++ unit-testing boost


    【解决方案1】:

    您正在查看的文档适用于 Boost 1.59,但您使用的是 boost 1.58。是什么让你认为 BOOST_TEST 存在于 1.58 中?

    从 1.58 文档中,我只看到对 BOOST_TEST_MESSAGE 和其他替代方案的支持。

    要么将你的 Boost 升级到至少 1.59,文档显示你有 BOOST_TEST,要么使用 1.58 中可用的功能,例如你已经完成的功能。

    【讨论】:

    • 谢谢,我错过了文档版本。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-05
    • 2015-02-26
    • 1970-01-01
    • 2013-12-08
    相关资源
    最近更新 更多