Si l'Explorateur de tests Python de VS Code ne trouve aucun test, signale des erreurs d'importation ou semble rechercher dans le mauvais dossier sur macOS, vérifiez d'abord le répertoire de travail des tests Python et les arguments du framework. Définissez python.testing.cwd sur le répertoire attendu par votre commande de test, puis actualisez la découverte et inspectez le journal de sortie Python. Pour unittest, vérifiez également son argument distinct de répertoire de départ -s ; modifier cwd ne remplace pas ce paramètre.
Confirmer quel répertoire VS Code utilise
Ouvrez l'Explorateur de tests et exécutez Test : Actualiser les tests depuis la palette de commandes (⇧⌘P). Si la découverte échoue, ouvrez Affichage > Sortie, choisissez Python dans le menu du canal de sortie et lisez la dernière entrée de découverte. L'extension Python consigne les erreurs de découverte dans ce journal, ce qui peut aider à distinguer un problème de chemin d'un framework manquant ou d'une erreur de syntaxe. VS Code documente ces étapes de découverte et de journalisation.
Vérifiez quel dossier est ouvert dans la fenêtre VS Code. Dans un espace de travail à dossier unique, l'espace de travail correspond généralement à la racine du projet. Si vous avez ouvert le dossier parent d'un dépôt ou un espace de travail multi-racines, les chemins relatifs peuvent être résolus à partir d'une racine différente de celle que vous supposiez. Le répertoire actuel d'un terminal ne suffit pas pour déterminer le répertoire utilisé par l'extension ; consultez la sortie de découverte et les paramètres de l'espace de travail. Dans un espace de travail multi-racines, VS Code autorise des paramètres spécifiques aux dossiers, et ${workspaceFolder} fait référence au dossier associé au paramètre. Le guide des espaces de travail de VS Code explique les dossiers multi-racines, et sa référence des variables couvre les chemins limités aux dossiers.
Définir le répertoire de travail des tests Python
Par exemple, si vous avez ouvert la racine du dépôt mais que votre commande de test doit s'exécuter depuis son sous-dossier backend, ouvrez les paramètres de l'espace de travail sur Mac avec ⇧⌘P et sélectionnez Préférences : Ouvrir les paramètres de l'espace de travail (JSON). Ajoutez ou fusionnez cette clé dans l'objet JSON existant :
{
"python.testing.cwd": "${workspaceFolder}/backend"
}
Utilisez le répertoire réel de votre projet. Si les tests doivent s'exécuter à la racine de l'espace de travail, vous pouvez omettre ce paramètre ou le définir sur ${workspaceFolder}. Évitez une valeur relative brute telle que backend si vous n'êtes pas certain de la racine à laquelle elle est relative ; la variable explicite de l'espace de travail clarifie la base prévue. Les paramètres de l'espace de travail prévalent sur les paramètres utilisateur, inspectez donc les deux portées si votre modification semble sans effet. VS Code stocke les paramètres d'espace de travail à dossier unique dans .vscode/settings.json ; utilisez l'onglet Espace de travail de l'éditeur de paramètres pour vérifier la valeur active. Les paramètres d'espace de travail et leur priorité sont décrits dans la documentation des paramètres de VS Code.
Le paramètre cwd de l'extension Python est facultatif. Sa documentation indique que sa définition ajuste également le --rootdir de pytest ; rootdir étant la configuration de la racine du projet pour pytest, ne le considérez pas comme interchangeable avec l'argument de recherche de tests de chaque framework. La référence des paramètres de test Python mentionne ce comportement de pytest.
Vérifier les arguments de découverte spécifiques au framework
Pour pytest, examinez python.testing.pytestArgs à la recherche d'un chemin qui pointerait vers un emplacement inattendu. Un chemin tel que tests indique à pytest ce qu'il doit collecter, tandis que python.testing.cwd définit le contexte du répertoire de travail. Ne conservez que les arguments dont votre projet a besoin et assurez-vous que le chemin est cohérent avec ce contexte. Après modification, exécutez à nouveau Test : Actualiser les tests. L'extension découvre les fichiers pytest correspondant à ses conventions sous le dossier actuel et les sous-dossiers ; la découverte peut toujours échouer pour des raisons non liées à cwd, notamment une installation de pytest indisponible ou des erreurs dans les fichiers de test. Le guide officiel des tests répertorie le comportement de découverte et les rapports d'échec courants.
Pour unittest, inspectez séparément python.testing.unittestArgs. Ses arguments par défaut incluent -s ., où -s sélectionne le répertoire de départ. Si les tests se trouvent sous backend/tests et que cwd est la racine du dépôt, configurez le répertoire de départ en conséquence, par exemple :
{
"python.testing.cwd": "${workspaceFolder}",
"python.testing.unittestEnabled": true,
"python.testing.pytestEnabled": false,
"python.testing.unittestArgs": ["-v", "-s", "backend/tests", "-p", "*test*.py"]
}
Il s'agit d'un exemple pour un projet utilisant unittest ; ne le copiez pas tel quel si votre framework ou le nommage de vos fichiers diffère. unittest exige également que les fichiers de test découverts soient des modules ou packages importables. Si le journal affiche des erreurs d'importabilité dans un sous-dossier de test, vérifiez la structure du package ; VS Code note qu'un fichier __init__.py peut rendre ces dossiers importables. Le guide officiel décrit les options -s et -p de unittest.
Actualiser et isoler les échecs restants
Après avoir modifié les paramètres, exécutez à nouveau Test : Actualiser les tests. Si VS Code utilise toujours un environnement inattendu, exécutez Python : Sélectionner un interpréteur et choisissez l'environnement dans lequel votre framework de test est installé ; l'interpréteur sélectionné est utilisé pour les fonctionnalités Python, y compris les tests. Le guide des environnements Python de VS Code explique la sélection de l'interpréteur.
Si la sortie affiche toujours le mauvais chemin, comparez le répertoire de travail consigné dans le journal avec la racine de l'espace de travail et les arguments de test configurés. Si le chemin est correct mais que la découverte échoue, suivez plutôt l'erreur réelle : vérifiez l'installation du framework, les erreurs d'importation, les erreurs de syntaxe et les modèles de noms de fichiers de test. Un ajustement de cwd ne peut pas corriger ces problèmes indépendants. Si un projet correctement configuré consigne toujours un chemin incohérent ou ignore le paramètre, capturez la sortie Python et les paramètres pertinents lors du signalement du problème ; il n'existe pas de commande universelle dans VS Code qui force chaque framework de test à utiliser un répertoire différent.
Sources
Python testing in Visual Studio Code — Microsoft
User and workspace settings — Microsoft
Multi-root Workspaces — Microsoft
Variables Reference — Microsoft
Python environments in VS Code — Microsoft