Я новичок в pytest и пытаюсь преобразовать некоторые функциональные тестовые скрипты в те, которые хорошо играют с pytest. Мой модуль имеет собственные типы ошибок, и я пытаюсь использовать метод «pytest.raises() как excinfo». Это научный/числовой пакет, и мне нужно проверить, что определенные методы являются последовательными при вызове, поэтому я не могу просто перейти к материалам более низкого уровня. Спасибос использованием pytest.raises для отслеживания ожидаемой пользовательской ошибки
13
A
ответ
27
Что заставляет вас импортировать конкретное исключение и использовать его в своем заявлении with
pytest.raises? Почему это не работает? Было бы более полезно, если бы вы могли более подробно рассказать о какой проблеме вы столкнулись.
# your code
class CustomError(Exception):
pass
def foo():
raise ValueError('everything is broken')
def bar():
raise CustomError('still broken')
#############
# your test
import pytest
# import your module, or functions from it, incl. exception class
def test_fooErrorHandling():
with pytest.raises(ValueError) as excinfo:
foo()
assert excinfo.value.message == 'everything is broken'
def test_barSimpleErrorHandling():
# don't care about the specific message
with pytest.raises(CustomError):
bar()
def test_barSpecificErrorHandling():
# check the specific error message
with pytest.raises(MyErr) as excinfo:
bar()
assert excinfo.value.message == 'oh no!'
def test_barWithoutImportingExceptionClass():
# if for some reason you can't import the specific exception class,
# catch it as generic and verify it's in the str(excinfo)
with pytest.raises(Exception) as excinfo:
bar()
assert 'MyErr:' in str(excinfo)
Смежные вопросы
- 1. Получение идентификатора ожидаемой ошибки
- 2. Идентификатор 30203 ожидаемой ошибки
- 3. Идентификатор ожидаемой ошибки (Java)
- 4. Получение ожидаемой ошибки выражения
- 5. Ошибки отслеживания с использованием XSLT и cURL
- 6. Я получаю идентификатор ожидаемой ошибки
- 7. Как работает pytest.raises (Error)?
- 8. VB.NET - Ошибка ожидаемой ошибки компиляции
- 9. Bash терпит неудачу с операндом ожидаемой ошибки
- 10. я продолжаю получать .class ожидаемой ошибки
- 11. объект Ожидаемой ошибки реализации JQuery Suckerfish меню
- 12. Страница пользовательской ошибки для ошибки Http 503
- 13. Почему объект ожидаемой ошибки в jquery?
- 14. C# threading Метод Имя ожидаемой ошибки
- 15. Ошибки отслеживания в Haskell
- 16. Android - requestLocationUpdates вызывает идентификатор ожидаемой ошибки
- 17. Ошибка автозаполнения Получение ожидаемой ошибки объекта
- 18. VBS Конец ожидаемой ошибки заявления в
- 19. Синтаксис: операнд ожидаемой (маркер ошибки «>»
- 20. Добавлять ошибки с пользовательской ошибкой
- 21. Страница пользовательской ошибки для неудавшегося приложения Инициализация
- 22. Идентификатор ожидаемой ошибки с помощью методов KeyListener/KeyListener
- 23. синхронизация Rally с другим отслеживания ошибки решением
- 24. Ошибки с использованием пользовательской точки Аннотация в Swift
- 25. Проверка XML для ожидаемой структуры
- 26. Массовая вставка ожидаемой производительности
- 27. Создание пользовательской ошибки волейбола
- 28. нос плагин для ожидаемой неудачи
- 29. Неисправность пользовательской ошибки WCF
- 30. Страницы пользовательской ошибки ASP.NET
Похоже, ваш последний 'с py.test.raises' должен быть' с pytest.raises' –
@IanHunter обновляемой Теперь, благодаря (Вы можете сказать, что я до сих пор с помощью «py.test» версия:)) – pfctdayelise
Для python3: 'assert str (excinfo.value) == 'все сломано'' – incognick