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中導出一些符號?
謝謝!