2011-02-02 44 views
11

我使用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中导出一些符号?

谢谢!

回答