【发布时间】:2012-11-09 03:33:11
【问题描述】:
我最近将我的笔记本电脑升级到了 Windows 8,以便我可以针对 W8 和 WP8 进行开发。我有一些使用 Boost.Test 进行单元测试的 Visual Studio 2010 创建的项目。我尝试将项目转换为 VS2012 项目,但遇到了问题,所以我只是使用与以前相同的源代码创建了新的 VS2012 项目。但是,每个单元测试套件在我运行它时都会引发异常。我调试了它,发现它尝试在results_reporter.ipp 中的make_report 方法中生成报告时抛出异常。违规行是
case CONFIRMATION_REPORT:
s_rr_impl().m_formatter->do_confirmation_report( framework::get<test_unit>( id ), *s_rr_impl().m_output );
代码中的某处有一个map 对象,它有一些坏内存,因此出现异常。我正在使用 Boost 1.50.0。我还尝试了最新版本 1.52.0,但结果相同。 VS2012 是否存在错误,或者是否有一些我不知道的设置/配置,或者在 Windows 7 和 8 上开发的差异?
编辑
这是一个示例测试,它在我使用 VS2012 和 Boost 1.50.0 的环境中引发异常:
#define BOOST_TEST_MODULE exception.test
#include <boost/test/unit_test.hpp>
BOOST_AUTO_TEST_SUITE(SuiteTest)
BOOST_AUTO_TEST_CASE(exceptionTest){
BOOST_REQUIRE(true);
}
BOOST_AUTO_TEST_SUITE_END()
【问题讨论】:
标签: c++ visual-c++ boost visual-studio-2012 boost-test