【问题标题】:Boost unit tests throwing exceptions in Visual Studio 2012Boost 单元测试在 Visual Studio 2012 中引发异常
【发布时间】: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


    【解决方案1】:

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

    【讨论】:

    • 您是如何解决这个问题的?有同样的问题。使用 MStest 和 Boost 单元。
    猜你喜欢
    • 2013-07-28
    • 1970-01-01
    • 2013-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-15
    相关资源
    最近更新 更多