Python UnitTest в Visual Studio 2019 работает не так, как ожидалось

#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. Когда я использую отладчик и использую опцию «войти», он выводит меня на нужный экран, но это просто ужасно и прерывает рабочий процесс.