【问题标题】:How to get the return values for a function in boost test functions?如何在 boost 测试函数中获取函数的返回值?
【发布时间】:2019-12-14 13:53:25
【问题描述】:

我正在尝试为 C++ 存储库编写 boost 单元测试。我想断言函数的返回值,但视觉工作室抱怨它是一个未解析的外部符号。如果 BOOST_AUTO_TEST_CASE(my_boost_test) 在存储库中使用用户定义的类型,则没有问题,但是当我使用函数时,则存在未解决的外部符号问题。

下面的测试运行没有任何错误,但如果我取消注释该函数调用,那么我会得到一个未解决的外部符号问题。我是否使用了错误的 BOOST_TEST?如何在 boost 单元测试中使用函数调用?

#include <boost/test/included/unit_test.hpp>
#include "../my_repo/graph.h" // (getLables(), labelGraph and vertex_t defined here)

BOOST_AUTO_TEST_CASE(my_boost_test)
{
  std::string file1("test_tring");
  //vector<std::string> records = getLabels(file1);
  labelGraph g;
  vertex_t root = boost::add_vertex(g);
  g[root].name = ".";
  BOOST_TEST(1 == 1);
  BOOST_TEST(true);
}

【问题讨论】:

    标签: visual-studio boost c++17 boost-test


    【解决方案1】:

    问题在于 Visual Studio。 my_repo 是作为控制台应用程序构建的,在这种情况下不会生成 .lib 文件。将 my_repo 从控制台应用程序更改为静态库输出解决了这些问题。

    【讨论】:

      猜你喜欢
      • 2019-12-11
      • 2016-12-26
      • 2010-12-15
      • 2017-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多