2011-02-02 46 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中導出一些符號?

謝謝!

回答