Boost单元测试在Visual Studio 2012中抛出异常
问题描述:
我最近将笔记本电脑升级到Windows 8,以便我可以开发W8和WP8。我有一些使用Visual Studio 2010创建的项目,它们使用Boost.Test进行单元测试。我试着将项目转换为VS2012项目,但遇到了问题,所以我刚刚使用与以前相同的源代码创建了新的VS2012项目。但是,每个单元测试套件在运行时都会引发异常。我调试过它,发现它试图在results_reporter.ipp
的make_report
方法中生成报告时抛出异常。有问题的行是Boost单元测试在Visual Studio 2012中抛出异常
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()
答
这是因为new
和delete
一些全球覆盖的发生那是通过我的项目中的另一个测试类意外导入的。
你怎么能解决这个问题?有同样的问题。使用MStest和Boost单元。 – Darkenor