c ++ BOOST_TEST不在范围内

时间:2016-06-28 18:20:22

标签: c++ unit-testing boost

我正在使用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++ -std=c++11 test cpp -o main中配置g ++以使用c ++ 11时,我得到了相同的错误。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

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

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

将Boost升级至至少1.59,文档显示您有BOOST_TEST,或使用1.58中提供的功能,例如您已经完成的功能。