我正在使用 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 导出一些符号?
谢谢!