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!