Pipenv pytest игнорирует изменения источника или использует кэшированный источник?

У меня проект Django 4.0.6, Python 3.9.15, Ubuntu 22.10, pipenv 2022.10.25, pytest 7.1.2

Вывод теста был где-то закеширован, и теперь любое изменение игнорируется, пока я не удалю метод.

Шаги, которые я выполнил:

  1. Запустите тест: pipenv run pytest src/some/path/models.py
  2. Тест проваливается, показывая правильную ошибку в трассировке.
  3. Модифицируйте тело метода.
  4. Запустите тест снова.
  5. Тест снова проваливается, НО обратная трассировка показывает старый код, не модифицированный.

screen

Удаление метода решает проблему, но любая модификация, внесенная в источник метода, заставляет его снова появиться в traceback, UNMODIFIED.

Может ли pipenv/pytest/whatever где-то кэшировать исходный текст?

pipenv run pytest src/some/path/models.py --cache-clear не помогло.

А также удаление .pytest_cache/.

Я попробовал удалить venv/some/path/__pycache__/models.cpython-39.pyc файл (и все скомпилированные *.pyc файлы в venv)

Но, похоже, ничего не помогает. Тот же самый откат появляется каждый раз, когда я запускаю тесты.

У меня была такая же проблема и я понял, что pytest, который я запускал через pipenv run pytest ..., на самом деле не был частью venv. Я рекомендую запускать его как pipenv run python -m pytest ...

Решается очисткой локального пользовательского кэша:

rm -rf ~/.cache/*
Вернуться на верх