Junior
59
questionbank

Какие модули для тестирования на Python вы знаете?

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech
  • unittest (или PyUnit) - стандартный модуль для создания и запуска тестов. Поддерживает концепции тестовых случаев (TestCase), тестовых наборов (TestSuite) и тестовых раннеров (TestRunner).
  • pytest - популярный сторонний фреймворк для тестирования. Отличается простотой написания тестов (без необходимости наследования от TestCase), поддержкой фикстур, параметризации и гибкой системой плагинов.
  • nose2 - еще один сторонний фреймворк, улучшающий и расширяющий возможности unittest.
  • doctest - позволяет выполнять примеры кода, встроенные в docstrings, как тесты.
  • mock (встроен в unittest.mock в Python 3.3+) - используется для замены частей вашей системы "фиктивными" (mock)объектами, что позволяет тестировать код независимо от его зависимостей.
  • coverage.py - измеряет покрытие тестами вашего кода.
  • hypothesis - фреймворк для property-based тестирования, генерирующий разнообразные входные данные для проверки инвариантов вашего кода.

Сравнение unittest и pytest:

Особенностьunittestpytest
Описание тестовКлассы, наследующие от TestCaseФункции или методы классов
ФикстурыМетоды setUp, tearDownДекоратор @pytest.fixture
ПараметризацияТребует дополнительных ухищренийВстроена (@pytest.mark.parametrize)
ОтчетыБазовыеБолее подробные
ПлагиныОграниченноШирокая экосистема плагинов

Пример простого теста с использованием pytest:

python

Запуск тестов:

bash