(Примечание: я все еще использую Boost 1.34.1)
Независимо от функции AUTO_TEST_CASE
, для регистрации пользовательских обработчиков исключений необходимо реализовать основную функцию init_unit_test_suite
. (Вам не нужно регистрировать какие-либо ваши автоматические тесты там.)
Все мои проекты модульных тестов используют файл ut_main.cpp, который содержит (примерно) следующее:
(Это в дополнение ко всем другим файлам cpp, содержащим фактические автоматические тесты.)
void translate_mfc_exception(CException* pMfcEx) {
...
BOOST_ERROR(msg);
}
// ...
using namespace ::boost::unit_test;
test_suite* init_unit_test_suite(int argc, char* argv[])
{
// Initialize global Handlers:
unit_test_monitor.
register_exception_translator<CException*>( &translate_mfc_exception );
// Return dummy suite to make framework happy:
test_suite* test = BOOST_TEST_SUITE( "Empty Test Suite" );
return test;
}
Это должно быть все, что вам нужно в дополнение к автоматическим тестам.