J'essaie de configurer (Windows) Visual Studio Code launch.json
pour lancer des tests jest
pour le fichier actuel. Pour obtenir le chemin, j'utilise la variable $ {relativeFile}
qui donne une chaîne avec des barres obliques inverses comme celle-ci "src \ services \ some-service.spec.ts"
, bien que dans le Les barres obliques de documentation semblent tout à fait normales.
Il semble que jest
n'accepte pas ce type de chemin à cause de la barre oblique inversée. Lorsque je passe manuellement le même chemin avec des barres obliques normales, cela fonctionne très bien.
La question est: y a-t-il un moyen d'inverser les barres obliques inverses dans les variables prédéfinies du chemin VSCode telles que $ {relativeFile}
ou peut-être des solutions de contournement?
3 Réponses :
Jest cli prend désormais en charge l'option - -runTestsByPath , de sorte que vous puissiez spécifier explicitement un chemin de fichier plutôt qu'un modèle, ce qui vous permet d'utiliser \
sur Windows.
Donc, le suivant launch.json
devrait fonctionner:
{ "version": "0.2.0", "configurations": [ { "name": "Jest Current FileBaseName", "type": "node", "request": "launch", "args": [ "node_modules/jest/bin/jest.js", "--runInBand", "${fileBasename}" ], "console": "integratedTerminal", "internalConsoleOptions": "neverOpen", "cwd": "${workspaceRoot}" }, { "name": "Jest Custom", "type": "node", "request": "launch", "args": [ "node_modules/jest/bin/jest.js", "--runInBand", "${input:testName}" ], "console": "integratedTerminal", "internalConsoleOptions": "neverOpen", "cwd": "${workspaceRoot}" } ], "inputs": [ { "type": "promptString", "id": "testName", "description": "The file or name you want to test", "default": "${fileBaseName}" } ] }
Il semble que la plaisanterie ne prévoie pas travailler avec \
et vscode ne prévoit pas de fournir des fonctionnalités pour remplacer les caractères dans les variables prédéfinies.
Mais il existe des solutions de contournement:
utilisez $ {fileBasename}
au lieu de ${relativeFile}
Ou utilisez variables d'entrée pour que vscode vous invite à saisir le nom du test personnalisé lors du débogage.
Voici un exemple de launch.json
pour les deux solutions de contournement ci-dessus.
{ "version": "0.2.0", "configurations": [ { "name": "Jest Current File", "type": "node", "request": "launch", "args": [ "node_modules/jest/bin/jest.js", "--runInBand", "--runTestsByPath", "${relativeFile}" ], "console": "integratedTerminal", "internalConsoleOptions": "neverOpen", "cwd": "${workspaceFolder}" } ] }
Ce problème est très similaire à celui auquel j'ai donné une réponse ailleurs . Pour résumer l'explication ici:
node ...
, exécutez bash -c node ...
pour pouvoir utiliser la substitution de commande shell dans la ligne de commande. cygpath -m
pour obtenir des barres obliques, quelque chose comme $ (cygpath -m $ {relativeFile})
. Voir la réponse liée pour plus de détails et d'exemples.
Utilisez la variable extension.commandvariable.file.relativeFilePosix
de l'extension variable de commande où vous avez besoin de $ {relativeFile}
avec des barres obliques. Il existe également d'autres substitutions utiles dans cette extension.
L'utilisation de VS Code pour exécuter des tests de plaisanterie via le débogueur nécessite des barres obliques, c'est le seul correctif qui fonctionne. Merci beaucoup!
Je l'ai trouvé sur github . Désolé, je n'ai pas vu, que ce n'est toujours pas résolu.
J'ai vu ce fil et je n'avais aucune idée d'où il avait trouvé cet exemple, c'était probablement juste une idée.