Boost单元测试在Visual Studio 2012中抛出异常

时间:2012-11-09 03:33:11

标签: c++ visual-c++ boost visual-studio-2012 boost-test

我最近将笔记本电脑升级到Windows 8,以便我可以开发W8和WP8。我有一些使用Visual Studio 2010创建的项目使用Boost.Test进行单元测试。我尝试将项目转换为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()

1 个答案:

答案 0 :(得分:1)

这种情况正在发生,因为newdelete的一些全局覆盖在我的项目中被另一个测试类意外导入。