Boost.Test在静态库上的测试
问题描述:
我使用Boost.Test进行单元测试。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
然后,如果我有libFooTests.a链接main.o和执行最终的二进制,它说:
Test setup error: test tree is empty
如果我直接从源代码创建二进制文件,一切正常,但我无法使用自动注册功能在静态库中编写单元测试。
我可以做到这一点吗?
是否有一些我需要定义的宏?我需要从libFooTests.a中导出一些符号?
谢谢!
答
How to force inclusion of "unused" object definitions in a library
那是你同样的问题,你就必须获得类似于我在我的答案做了一个解决方案。