Pipenv pytest игнорирует изменения источника или использует кэшированный источник?
У меня проект Django 4.0.6, Python 3.9.15, Ubuntu 22.10, pipenv 2022.10.25, pytest 7.1.2
Вывод теста был где-то закеширован, и теперь любое изменение игнорируется, пока я не удалю метод.
Шаги, которые я выполнил:
- Запустите тест:
pipenv run pytest src/some/path/models.py
- Тест проваливается, показывая правильную ошибку в трассировке.
- Модифицируйте тело метода.
- Запустите тест снова.
- Тест снова проваливается, НО обратная трассировка показывает старый код, не модифицированный.
Удаление метода решает проблему, но любая модификация, внесенная в источник метода, заставляет его снова появиться в 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/*