TGViewer
Zen of Python Zen of Python @zen_of_python · 18.8K subscribers
Post #5066 706
Почему тест проходит отдельно и падает в наборе

Один тест добавляет объект в общий список, другой рассчитывает, что список пуст. При привычном порядке запуска ошибка может долго оставаться незаметной.

В разборе плагинов pytest есть инструмент для таких случаев: pytest-randomly перемешивает порядок тестов и печатает seed. С ним можно повторить проблемный запуск:

pytest --randomly-seed=12345


Плагин также управляет состоянием генераторов случайных чисел, поэтому сбой стоит проверить и на зависимость от случайных данных.

Ищите изменяемые атрибуты класса, глобальные кеши и фикстуры, которые оставляют состояние после себя. Исправление — изолировать данные и добавить очистку. Один успешный запуск в случайном порядке ещё не доказывает независимость тестов.

#python #тестирование
More from @zen_of_python
  1. Oct 15, 2026Почему subprocess с PIPE может зависнуть Дочерний процесс пишет в stdout, родитель вызывае…
  2. Oct 15, 2026Как запустить тесты самого Django через uv Хотите исправить баг в Django? Сначала понадоби…
  3. Oct 14, 2026Почему Rust внутри CPython предлагают начать с zlib На Python Language Summit обсудили пос…
  4. Oct 14, 2026Почему mmap не всегда избавляет от копирования mmap позволяет обращаться к содержимому фай…
  5. Oct 14, 2026Post #5063
  6. Oct 14, 2026Когда Path.info экономит обращения к файловой системе При обходе большого каталога проверк…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →