1

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

1 回答 1

1

这是因为一些全局覆盖而发生的,new并且delete通过我项目中的另一个测试类意外导入。

于 2012-12-10T18:25:22.973 回答