138 votes

Comment faire en sorte que WebStorm reconnaisse les méthodes Jasmine ?

J'ai un node.js qui contient quelques Jasmin les spécifications. Les spécifications se trouvent dans un sous-répertoire spec/ et portent l'extension .spec.coffee, comme l'exige la législation européenne. nœud de jasmin .

Lorsque j'ouvre l'un de mes fichiers spécimens dans l'application WebStorm IDE, tous les appels à beforeEach y describe y it sont affichées avec des traits bleus et l'info-bulle : "Fonction ou méthode it() non résolue". Ainsi, même si j'utilise la méthode 3.0 EAP et il est censé ont un certain niveau de support de Jasmine il ne détecte pas automatiquement le fait qu'il s'agit d'un fichier de spécification Jasmine.

J'ai essayé d'aller dans Fichier > Paramètres > Bibliothèques JavaScript, et d'ajouter Jasmine en tant que bibliothèque (en spécifiant le chemin vers jasmine-2.0.0.rc1.js), puis d'aller dans la sous-page Portée d'utilisation et de cocher "Jasmine" dans la liste déroulante à côté de "Projet", mais cela n'a eu aucun effet -- les méthodes Jasmine sont toujours affichées comme non résolues.

Comment puis-je dire à WebStorm que tous les fichiers dans un sous-répertoire spec, et/ou tous les fichiers avec une extension .spec.coffee, sont des tests Jasmine, et lui faire reconnaître les API Jasmine que ces tests utilisent ?

2voto

mattblang Points 1229

Si vous rencontrez ce problème après avoir généré un projet à l'aide de l'option Angular CLI puis se rendre sur le site File -> Settings -> Languages & Frameworks -> JavaScript -> Libraries et vérifier {your-project-name}/node_modules .

0voto

BigHomie Points 719

Pour trouver la réponse à cette question, j'ai lancé DiffFusion sur mon projet Root et un nouveau projet Angular CLI créé dans Webstorm qui détecte correctement les types jasmine.

Ce que j'ai constaté, c'est que le tsconfig.json y tsconfig.spec.json dossiers de mon projet défini typeRoots y types alors que l'autre projet ne l'a pas fait.

enter image description here

Le comportement de la typeRoots est l'option :

Si typeRoots est spécifié, seuls les paquets de typeRoots seront inclus.

Types se comporte de la même manière.

La documentation Typescript poursuit en disant

Par défaut, tous les paquets "@types" visibles sont inclus dans votre compilation. Les paquets contenus dans node_modules/@types de n'importe quel dossier sont considérés comme visibles.

Pour mon projet, ce comportement est donc suffisant. Suppression typeRoots y types de mes deux tsconfig.json y tsconfig.spec.json les fichiers ont résolu le problème immédiatement .

Oui, le jasmin a été déclaré sous types en tsconfig.spec.json . Oui, il a été réglé pour s'étendre tsconfig.json .

Dans ce cas, cela n'a pas d'importance. Un jour, il a cessé de fonctionner. Peut-être à cause d'une mise à jour de Typescript, mais je ne peux pas l'affirmer avec certitude. Si quelqu'un sait pourquoi, merci de laisser un commentaire ci-dessous, je suis curieux.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X