我已经成功构建了使用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