Я только что перешел с моей среды тестирования catch2 на платформу модульного тестирования нативного кода C ++ от Microsoft для более удобной интеграции в IDE.
Но мой стиль кодирования - использовать множество утверждений assert по всему коду. Я не могу заменить их вызовами макросов, такими как вызовы AssertIfTrue, не отравляя всю кодовую базу зависимостями от каркаса.
Но если проверка не удалась, модуль модульного теста останавливается с всплывающим окном сообщения, и когда я нажимаю кнопку отмены, тест будет объявлен пропущенным, а не неудачным. Это также выглядит как невозможное поведение для любого жизненного цикла автоматической непрерывной интеграции.
Я уже пытался установить обработчик сигнала через signal(SIGABRT, SignalHandler);
, но обработчик никогда не вызывается. И использование _set_abort_behavior для отключения окна сообщения с _set_abort_behavior( 0, _WRITE_ABORT_MSG);
также не даст результата.