6
votes

VS Code ne trouve pas les tests pytest

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?


0 commentaires

4 Réponses :


3
votes

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 .

  • Python 3.7.2
  • macOS 10.13.6
  • Code VS 1.30.2
  • Extension Python 2018.12.1
  • Pytest 4.1.0

.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.


2 commentaires

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,



2
votes

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:

  1. Désinstaller l'extension Python
  2. Supprimez le fichier contenant l'extension de votre dossier ~ / .vscode (le mien ressemblait à ms-python.python- [YEAR]. [MONTH]. [VERSION] )
  3. Réinstaller l'extension

A fonctionné comme un charme.


1 commentaires

@Peter Avez-vous rechargé la fenêtre VSCode après la désinstallation / suppression et à nouveau après la réinstallation?



1
votes

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.


1 commentaires

Ugh, enfin, quelque chose qui a fonctionné. J'ai l'habitude de tester_ , mais je venais juste de le toucher. Merci!!!



1
votes

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


1 commentaires

Vous monsieur, m'avez fait gagner beaucoup d'heures! Merci!