I have pytest configured and working in VSCode, with automatic test discovery enabled.
But renaming a folder in the project that contains tests breaks both those tests and auto-discovery, instead producing a Pytest Discovery Error. How can I get the Testing to fully refresh – removing tests under the old folder name and adding those in the new name?
Simple steps to reproduce problem:
hello is a folder foo containing x.py and test_x.py.hello >> foo >> test_x.py >> test_*foo to bar.Result:
hello >> foo work because there is no hello/foo.hello >> bar >> ... to appear in the Testing pane.Pytest Discovery Error [hello] (with details pasted below).How can I force the Testing configuration to refresh so that it removes the hello >> foo tests and adds the hello >> bar tests?
Verbose output after renaming foo to bar and refreshing/re-running tests:
Python interpreter path: ~\AppData\Local\Programs\Python\Python39\python.exe
> ~\AppData\Local\Programs\Python\Python39\python.exe -c "import pytest"
> ~\AppData\Local\Programs\Python\Python39\python.exe ~\.vscode\extensions\ms-python.python-2022.14.0\pythonFiles\testing_tools\run_adapter.py discover pytest -- --rootdir . -s --cache-clear foo
cwd: .
> ~\AppData\Local\Programs\Python\Python39\python.exe ~\.vscode\extensions\ms-python.python-2022.14.0\pythonFiles\testing_tools\run_adapter.py discover pytest -- --rootdir . -s --cache-clear foo
cwd: .
> ~\AppData\Local\Programs\Python\Python39\python.exe ~\.vscode\extensions\ms-python.python-2022.14.0\pythonFiles\testing_tools\run_adapter.py discover pytest -- --rootdir . -s --cache-clear foo
cwd: .
> ~\AppData\Local\Programs\Python\Python39\python.exe -m pytest --rootdir . --override-ini junit_family=xunit1 --junit-xml=~\AppData\Local\Temp\tmp-13840MhzPL4CPuKOe.xml ./foo
cwd: .
> ~\AppData\Local\Programs\Python\Python39\python.exe -m pytest --rootdir . --override-ini junit_family=xunit1 --junit-xml=~\AppData\Local\Temp\tmp-13840ITbhhDmK8Ah1.xml
cwd: .
> ~\AppData\Local\Programs\Python\Python39\python.exe ~\.vscode\extensions\ms-python.python-2022.14.0\pythonFiles\testing_tools\run_adapter.py discover pytest -- --rootdir . -s --cache-clear foo
cwd: .
[ERROR 2022-8-18 12:2:6.129]: Error discovering pytest tests:
[n [Error]: ============================= test session starts =============================
platform win32 -- Python 3.9.2, pytest-7.1.3, pluggy-1.0.0
rootdir: c:\Users\Me\VSCode\hello
collected 0 items
========================= no tests collected in 0.00s =========================
ERROR: file or directory not found: foo
I just had the same issue. I read on some threads the idea just to remove all the cache files (especially __pycache__ and .pytest_cache). See Pytests import fails after renaming project folder for details.
But I figured out where the problem was without removing anything. There is a file settings.json in the .vscode folder. So, it contained an entry python.testing.unittestArgs with the old name of the renamed project folder. After I updated that entry VSCode works as expected again.
So you should try both:
**/__pycache__, **/*.pyc, and .pytest_cache.vscode/settings.json for outdated config.I hope that helps!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With