【问题标题】:Boost.Test tests on a static libraryBoost.Test 对静态库的测试
【发布时间】:2011-02-02 17:56:55
【问题描述】:

我正在使用 Boost.Test 进行单元测试。

由于几个原因,我想在不同的静态库上编写单元测试用例。

问题是当我这样做时,自动注册器不起作用。

例如,如果我有类似的东西:

// foo_tests.cpp
#define BOOST_TEST_MODULE "Foo"
#include <boost/test/unit_test.hpp>
BOOST_AUTO_TEST_CASE( Bar )
{
    BOOST_CHECK( false );
}
// used to generate libFooTests.a

// main.cpp
#define BOOST_TEST_DYN_LINK
#define BOOST_TEST_MAIN
#include <boost/test/unit_test.hpp>
// used to generate main.o

然后,如果我将 main.o 与 libFooTests.a 链接并执行最终的二进制文件,它会说:

Test setup error: test tree is empty

如果我直接从源代码创建二进制文件,一切都会正常工作,但我不能使用自动注册在静态库中编写单元测试。

我能做到吗?

我需要定义一些宏吗?我需要从 libFooTests.a 导出一些符号?

谢谢!

【问题讨论】:

    标签: c++ unit-testing static-libraries boost-test


    【解决方案1】:

    How to force inclusion of "unused" object definitions in a library

    这是你同样的问题,你必须得出一个类似于我在回答中所做的解决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-09-07
      • 2021-11-06
      • 1970-01-01
      • 2011-10-24
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多