2012-11-09 5 views
1

Недавно я обновил свой ноутбук до Windows 8, чтобы я мог разрабатывать W8 и WP8. У меня были некоторые проекты, созданные с помощью Visual Studio 2010, которые использовали Boost.Test для модульного тестирования. Я попытался преобразовать проекты в проекты VS2012, но столкнулся с проблемами, поэтому я просто создал свежие проекты VS2012, используя тот же исходный код, что и раньше. Тем не менее, каждый комплект тестового пакета генерирует исключение, когда я его запускаю. Я отлаживал его и обнаружил, что он выбрасывает исключение, когда пытается сделать отчет в методе make_report в results_reporter.ipp. Нарушитель линияУскоренное тестирование блоков исключения в 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 и увеличить 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

Это происходит из-за каких-то глобальных переопределения new и delete который случайно импортировался через другой тестовый класс в моем проекте.

+0

Как вы смогли это решить? Имеет ту же проблему. Использование модуля MStest и Boost. – Darkenor