Comment puis-je amener WebStorm à reconnaître les méthodes Jasmine?


135

J'ai un projet node.js qui contient quelques spécifications Jasmine . Les spécifications se trouvent dans un sous-répertoire spec / et ont l'extension .spec.coffee, comme requis par jasmine-node .

Lorsque j'ouvre un de mes fichiers de spécifications dans l' IDE WebStorm , tous les appels à beforeEachet describeet itsont affichés avec des soulignements ondulés bleus avec l'info-bulle: "Fonction ou méthode non résolue ()". Donc, même si j'utilise l' EAP 3.0 et qu'il est censé avoir une certaine prise en charge de Jasmine , cela ne prend pas automatiquement en compte le fait qu'il s'agit d'un fichier de spécifications 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 en accédant à la sous-page Usage Scope et en vérifiant "Jasmine" dans le liste déroulante à côté de "Projet", mais cela n'a eu aucun effet - les méthodes Jasmine apparaissent toujours comme non résolues.

Comment puis-je dire à WebStorm que tous les fichiers d'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?


J'ai le même problème dans 3.0 EAP. C'est la raison pour laquelle je travaille dans 2.1.5.
Microfed

Vous devez soumettre cela comme un problème sur youtrack.jetbrains.net/issues/WI afin que les développeurs puissent résoudre de tels cas dans les versions futures.
CrazyCoder

@Microfed, alors vous dites que 2.1.5 reconnaît automatiquement les tests Jasmine? Est-ce un bug qui a déjà été écrit?
Joe White

Réponses:


238

Vous pouvez utiliser des stubs de bibliothèque JS prédéfinis dans Webstorm / PHPStorm / Idea

  • Ouvrez Fichier> Paramètres ...
  • Sélectionnez Langues et cadres > JavaScript> Bibliothèques
  • Cliquez sur Télécharger ...

Paramètres de la bibliothèque JavaScript

  • Basculer vers les stubs de communauté TypeScript
  • Trouvez le karma-jasmine (à l'origine sous le nom de jasmin ) (si cela ne fonctionne pas, essayez plutôt le jasmin )
  • Cliquez sur Télécharger et installer

entrez la description de l'image ici

J'utilise cette configuration avec Jasmine 2.0


2
son appelé karma-jasmine, ils l'ont changé juste pour nous aider à le trouver
Andrzej Rehmann

7
Ça ne marche pas pour moi. "describe", "beforeEach", "it" apparaissent toujours avec un soulignement gris.
BuildTester1

36
Si vous n'utilisez pas de karma, vous pouvez simplement choisir la bibliothèque 'jasmine' à télécharger. C'est ce qui a fonctionné pour moi après avoir essayé le karma-jasmine
Doug Seelinger

22
Même si j'utilise le karma, je devais télécharger juste du jasmin pour le faire fonctionner. le karma-jasmin ne fonctionnait pas.
Didier L

3
Dernière étape - redémarrer IDE
Sava Jcript

30

Sur un Mac avec webstorm 2016.1.1, j'ai effectué les opérations suivantes:

  1. Ouvrir les préférences (webstorm-> préférence ou [commande +,])
  2. Accédez aux bibliothèques et frameworks -> javascript -> bibliothèques
  3. Télécharger
  4. sélectionnez 'jasmine - DefinitelyTyped' dans la liste

Prise en charge de Jasmine ajoutée à Webstorm


4
Cela a fonctionné pour moi sur mac, mais j'avais besoin de fermer et de redémarrer WebStorm.
Jim

J'ai téléchargé la jasminebibliothèque en utilisant IntelliJ 2016.3 sur une machine Windows et cela a fonctionné, même sans redémarrer.
Jelle

J'ai également dû changer le "Type" de Global à Project. Double-cliquez sur le nom de la bibliothèque après l'avoir installée, puis modifiez le paramètre "Visibilité"
providencemac

6

Notez que si vous utilisez un outil de qualité de code tel que JSHint avec WebStorm, l'ajout de la bibliothèque globale jasmin / karma-jasmine n'a pas éliminé les erreurs JSHint.

Vous devez accéder aux paramètres JSHint via le système de menus de WebStorm (Lang & Frameworks> JavaScript> Outils de qualité de code> JSHint) et cliquer sur la case à cocher pour lui permettre de savoir dans quel environnement il s'exécute.

Paramètre JSHint


Jasmine est absente de mes environnements. Comment cela est-il apparu dans le vôtre?
Aseem Bansal

@AseemBansal quelle version de jshint utilisez-vous?
prasanthv

J'utilise la version 2.5.10
Aseem Bansal

4

Utilisation de TypeScript (et Angular2), il vous suffit d'activer le compilateur TypeScript dans les paramètres WebStorm ...

Paramètres> Langues et paramètres> TypeScript ...

Sous l'en-tête du compilateur, cochez ...

Activer le compilateur TypeScript ...

(J'ai également cliqué sur l'utilisation de la radio tsconfig.json)

Les méthodes Jasmine seront désormais reconnues


Le problème avec cette solution est que je ne veux pas WebStormcompiler mon TypeScriptdepuis que j'utilise Webpack.
theblang

Fait intéressant, si je fais new projectcomme un Angular CLIprojet puis les reconnaît. Je ne sais pas ce qui est différent.
theblang

J'utilise gulp pour transpiler mon TypeScript, si vous configurez correctement votre tsconfig.json, TypeScript ne générera PAS de fichiers de sortie, il les validera simplement dans l'EDI.
danday74

A travaillé pour moi. N'oubliez pas de cocher le tsconfig.json
Michael Kornelakis

Cela a presque fonctionné sans erreur pour moi. Cependant, lorsque je fais cela, j'obtiens cette sortie d'erreur de l'onglet du compilateur Typescript dans WebStorm: Erreur: Erreur: Parse tsconfig error [{"messageText": "Option de compilateur inconnue 'baseUrl'.", "Category": 1, "code ": 5023}, {" messageText ":" Option de compilateur inconnue 'lib'. "," Category ": 1," code ": 5023}, {" messageText ":" Option de compilateur inconnue 'typeRoots'. "," Category ": 1," code ": 5023}]
Nikola Schou

4

Cela peut également être dû à une dépendance manquante (si vous développez en TypeScript).

Assurez-vous que vous avez installé @types/jasmine

npm install --save-dev @types/jasmine

2

Si vous rencontrez ce problème après avoir généré un projet à l'aide de, Angular CLIaccédez à File -> Settings -> Languages & Frameworks -> JavaScript -> Librarieset vérifiez {your-project-name}/node_modules.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.