我已經成功構建了使用VS2013的Boost庫。我也成功地包含並使用了一些Boost.Filesystem和Boost.Log的東西。不過,我掙扎着爬以下的單元測試在Visual Studio 2013的工作:努力獲得Boost庫單元測試框架的工作
#define BOOST_TEST_MODULE MyTest
#include <boost/test/included/unit_test.hpp>
class Multiplier {
public:
explicit Multiplier(int i) : _value{ i } {}
int multiply(int i) { return _value * i; }
private:
int _value;
};
BOOST_AUTO_TEST_CASE(everything_test) {
Multiplier m{ 5 };
BOOST_CHECK_EQUAL(m.multiply(2), 10);
}
這顯然不是一個真正的單元測試,但是這不是問題的關鍵... :)
通過包括boost/test/included/unit_text.hpp
,我應該得到一個爲我提供的main()
函數,看來我是因爲我能夠解決這個錯誤。但是,當我運行生成的可執行文件時,我得到一個Access violation reading location 0x00000000.
我應該運行可執行文件來運行測試嗎?如果不是,我該如何運行它們?運行測試看起來像是一個簡單的操作,從文檔中可以明顯看出,但我必須忽略它。
你是否嘗試過從命令行運行可執行文件?使用適當的命令行參數[http://www.boost.org/doc/libs/1_44_0/libs/test/doc/html/utf/user-guide/runtime-config/reference.html]。 – Ravi
你有能力運行一個空的測試用例嗎?你記得在你的生成文件中添加鏈接信息嗎? ?我在我的Makefile中有以下內容:-lboost_system – serup