我最近将我的笔记本电脑升级到了 Windows 8,以便我可以为 W8 和 WP8 进行开发。我有一些使用 Boost.Test 进行单元测试的 Visual Studio 2010 创建的项目。我尝试将项目转换为 VS2012 项目,但遇到了问题,所以我只是使用与以前相同的源代码创建了新的 VS2012 项目。但是,每个单元测试套件在我运行它时都会引发异常。我已经对其进行了调试,发现它在尝试make_report
在results_reporter.ipp
. 违规行是
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()