【发布时间】:2014-05-20 04:33:01
【问题描述】:
我已经使用 VS2013 成功构建了 Boost 库。我还成功地包含并使用了一些 Boost.Filesystem 和 Boost.Log 的东西。但是,我正在努力让以下单元测试在 Visual Studio 2013 中工作:
#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.
我应该运行可执行文件来运行测试吗?如果没有,我该如何运行它们?运行测试似乎是一个如此简单的操作,从文档中可以明显看出,但我一定错过了它。
【问题讨论】:
-
您是否尝试过从命令行运行可执行文件?使用适当的命令行参数 [boost.org/doc/libs/1_44_0/libs/test/doc/html/utf/user-guide/….
-
你能运行一个空的测试用例吗?你记得在你的makefile中添加链接信息吗?我的 Makefile 中有以下内容:-lboost_system
标签: c++ unit-testing boost visual-studio-2013