J'ai installé PyTest dans vs-code mais aucun des tests n'a été trouvé, même si l'exécution de pytest à partir de la ligne de commande fonctionne correctement.
(Je développe une application Django sur Win10 en utilisant MiniConda et un Python 3.6. 6 environnement virtuel. VS Code est entièrement mis à jour et j'ai installé les extensions Python et Debugger for Chrome)
Pytest.ini:
============================= test session starts ============================= platform win32 -- Python 3.6.6, pytest-4.1.1, py-1.7.0, pluggy-0.8.1 Django settings: callsign.settings (from ini file) rootdir: c:\Users\benhe\Projects\CallsignCopilot\callsign, inifile: pytest.ini plugins: django-3.4.5 collected 23 items <Package c:\Users\benhe\Projects\CallsignCopilot\callsign\transcription> <Module test_utils.py> <Function test_n_digits> <Function test_n_alpha> <Function test_n_hex> <Function test_n_digits_in_range> <Function test_v1_audiofilename> <Function test_v2_audiofilename> <Function test_v1_bad_int_filename> <Function test_v1_bad_non_int_filename> <Function test_bad_format> <Function test_no_format> <Function test_too_many_segments> <Function test_too_few_segments> <Function test_good_v2_filename> <Function test_bad_year_v2_filename> <Function test_bad_month_v2_filename> <Function test_bad_day_v2_filename> <Function test_bad_date_v2_filename> <Function test_bad_short_serial_v2_filename> <Function test_bad_long_serial_v2_filename> <Function test_good_v3_filename> <Function test_good_lowercase_block_v3_filename> <Function test_bad_non_alpha_block_v3_filename> <Function test_real_filenames> ======================== no tests ran in 1.12 seconds =========================
vs-code paramètres de l'espace de travail:
{ "folders": [ { "path": "." } ], "settings": { "python.pythonPath": "C:\\ProgramData\\Miniconda3\\envs\\callsign\\python.exe", "python.unitTest.unittestEnabled": false, "python.unitTest.nosetestsEnabled": false, "python.unitTest.pyTestEnabled": true, "python.unitTest.pyTestArgs": ["--rootdir=.\\callsign", "--verbose"] } }
Enfin, la sortie du journal de test Python dans le code VS:
[pytest] DJANGO_SETTINGS_MODULE = callsign.settings python_files = tests.py test_*.py *_tests.py
Suis-je en manque étapes pour obtenir vs-code pour trouver les tests?
4 Réponses :
MODIFIER : je suis passé à Pytest 4.0.1 après avoir lu issue 3911 et Test Discovery fonctionne maintenant.
Moi aussi. Lorsque je souffle .pytest_cache
et que je relance Python: Discover Unit Tests
, je vois que le .pytest_cache / v / cache / nodeids
fraîchement généré contient tous les tests, mais j'obtiens toujours la boîte de dialogue se plaignant de Aucun test découvert
.
.vscode/settings.json
:
{ "python.linting.enabled": false, "python.unitTest.unittestEnabled": false, "python.unitTest.nosetestsEnabled": false, "python.unitTest.pyTestEnabled": true, "python.pythonPath": "venv3/bin/python" }
Les tests sont dans un sous-répertoire de premier niveau appelé test . L'exécution de
pytest
fonctionne manuellement.
Les tests s'affichent-ils dans l'Explorateur de tests pour vous après avoir réexécuté Python: Discover Tests? Je ne vois toujours rien après la rétrogradation.
Mise à jour du 9 octobre: vous devriez utiliser: json "python.testing.unittestEnabled": false, "python.testing.nosetestsEnabled": false, "python.testing.pytestEnabled": true,
Si quelqu'un rencontre cela en 2020, ce problème dans le < code> vscode-python repo m'a sauvé la vie. En gros, procédez comme suit:
Python
~ / .vscode
(le mien ressemblait à ms-python.python- [YEAR]. [MONTH]. [VERSION] code>)
A fonctionné comme un charme.
@Peter Avez-vous rechargé la fenêtre VSCode après la désinstallation / suppression et à nouveau après la réinstallation?
Mon plugin Python et mon explorateur de tests fonctionnent très bien.
Dans mon cas, nommer la classe sans test_.py
était le problème. En d'autres termes, nommer le fichier de test sans qu'il commence par "test_"
, et non par "tests_"
, permet à l'explorateur de ne pas voir le problème. Ex: test_.py
fonctionne mais tests_.py
, 12345abcde.py
ne fonctionnent pas.
Ugh, enfin, quelque chose qui a fonctionné. J'ai l'habitude de tester_
, mais je venais juste de le toucher. Merci!!!
Une autre chose à vérifier, si vscode ne parvient pas à découvrir les tests, est de s'assurer qu'il ne le fait pas à cause du coverage est activé. Dans mon cas, les cas de test ont été découverts correctement mais la découverte a finalement échoué en raison d'une faible couverture de test, comme décrit ici . Assurez-vous donc que les tests peuvent effectivement être collectés par pytest
comme suggéré ici : XXX
et assurez-vous de ne pas forcer la vérification de la couverture (par exemple dans setup.cfg
) avec par exemple
addopts= --cov <path> -ra
Vous monsieur, m'avez fait gagner beaucoup d'heures! Merci!