#python #exception #visual-studio-2019 #python-unittest
Вопрос:
Я работаю в проекте Python в Visual Studio 2019 Community Edition (версия 16.9.2). Я проводил некоторое модульное тестирование для проекта и наткнулся на эту странную…функцию…этому у меня нет объяснения.
У меня есть статический класс, в котором есть несколько методов, и один из этих методов вызывает a ValueError
. Одним из важных тестов для этого метода является то, что метод вызывает это исключение при передаче недопустимых параметров.
Чтобы проверить это, я использую self.assertRaises
тест от unittest
, способ, которым я его использую, таков
self.assertRaises(ValueError, BV.my_function, 30) # It should raise an exception with the value 30
В начале Visual Studio перехватывала ValueError
в отладчике, поэтому я перешел к настройкам исключений, а в Исключениях Python снял все флажки и установил все дополнительные параметры на:
Продолжайте, если не обработано в пользовательском коде
Все это сработало очень хорошо, и теперь работает тест на исключение. Поскольку мне было любопытно посмотреть, что произошло, когда я передал допустимые параметры, я позвонил:
self.assertRaises(ValueError, BV.my_function, 0) # It should NOT raise an exception with the value 0
Однако это создает исключение, которое Visual Studio улавливает и отображает, вместо того, чтобы отмечать его как Failed
в консоли вывода.
Это также происходит с формой:
with self.assertRaises(ValidateError):
BV.my_function(0) # It should NOT raise an exception with the value 0
Вопросы
Почему это происходит? Есть ли способ предотвратить это?
Комментарии:
1. Когда я использую отладчик и использую опцию «войти», он выводит меня на нужный экран, но это просто ужасно и прерывает рабочий процесс.