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

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

Lorsque j'ouvre l'un de mes fichiers de spécification dans l'IDE WebStorm , tous les appels à beforeEach et < code> décris et it sont soulignés en bleu par l'info-bulle: "Fonction ou méthode non résolue it ()". Donc, même si j'utilise le 3.0 EAP et qu'il est supposé utiliser avoir une certaine prise en charge de Jasmine , cela ne signifie pas automatiquement qu'il s'agit d'une spécification Jasmine fichier.

I tried going into File > Settings > JavaScript Libraries, and adding Jasmine as a library (specifying the path to jasmine-2.0.0.rc1.js), and then going to the Usage Scope sub-page and checking "Jasmine" in the drop-down list next to "Project", but that had no effect -- the Jasmine methods still show up as unresolved.

Comment puis-je dire à WebStorm que tous les fichiers d'un sous-répertoire spec et/ou de tous les fichiers portant l'extension .spec.coffee sont des tests Jasmine et qu'il doit reconnaître les API Jasmine qu'ils utilisent?

120
@ Microfed, vous dites donc que la 2.1.5 reconnaît automatiquement les tests Jasmine? Est-ce un bug qui a déjà été écrit?
ajouté l'auteur Joe White, source
Vous devez l'envoyer sous la forme d'un problème à l'adresse youtrack.jetbrains.net/issues/WI afin que les développeurs peut traiter de tels cas dans les versions futures.
ajouté l'auteur CrazyCoder, source
J'ai le même problème dans 3.0 EAP. C'est la raison pour laquelle je travaille en 2.1.5.
ajouté l'auteur Microfed, source

6 Réponses

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

  • Open File > Settings...
  • Select Languages & Frameworks > JavaScript > Libraries
  • Click on Download...

JavaScript Library settings

  • Swich to TypeScript community stubs
  • Find karma-jasmine (originally under the name jasmine) (If this does not work, try jasmine instead)
  • Click on Download and Install

enter image description here

J'utilise cette configuration avec Jasmine 2.0

214
ajouté
et qu'en est-il du moka?
ajouté l'auteur hellboy, source
Même si j'utilise du karma, je devais télécharger seulement jasmine pour que cela fonctionne. Karma-Jasmin n'a pas fonctionné.
ajouté l'auteur Didier L, source
En installant uniquement Jasmine, Webstorm reconnaît également les méthodes Jasmine.
ajouté l'auteur Udo, source
Si vous ne le trouvez pas dans la liste, vous l'avez déjà installé - activez-le. Si cela ne supprime pas les gribouillis après avoir quitté les paramètres, supprimez et retéléchargez karma-jasmine.
ajouté l'auteur sennett, source
L'utilisation de la bibliothèque 'jasmine' fonctionne ici avec TypeScript et Angular2, mais provoque une erreur différente sur les mêmes méthodes Jasmine (en ce qui concerne une entrée de fichier manquante dans tsconfig.json) - L'ajout de l'entrée de fichier a corrigé ce problème MAIS a provoqué l'arrêt de la compilation automatique de mes fichiers TS - la La solution finale beaucoup plus simple se trouve dans ma réponse ci-dessous.
ajouté l'auteur danday74, source
Cela a fonctionné pour moi dans PhpStorm en utilisant mocha et expect.js
ajouté l'auteur MisterBla, source
@ DidierL! Merci. C'est exactement ce dont j'avais besoin. J'essaie de comprendre cela depuis longtemps maintenant.
ajouté l'auteur user1807337, source
son appelé karma-jasmine, ils l'ont changé juste pour nous aider à le trouver
ajouté l'auteur Hoto, source
Je n'ai aucune expérience avec le moka, mais la définition de la bibliothèque est disponible de la même manière que pour le jasmin
ajouté l'auteur oujesky, source
Je pense que le seul but est l’aide à la saisie semi-automatique (de sorte que l’EDI n’a pas besoin de traiter le code de la bibliothèque et de deviner comment l’interface est définie). C’est essentiellement dit ici: jetbrains.com/webstorm/webhelp/javascript-libraries. html
ajouté l'auteur oujesky, source
Je suis nouveau sur Webstorm. Quelle fonctionnalité supplémentaire obtenez-vous en faisant cela?
ajouté l'auteur Mike Fisher, source
Ca ne marche pas pour moi "décrire", "avant chaque", "il" apparaissent toujours avec un soulignement gris.
ajouté l'auteur BuildTester1, source
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-jasmin
ajouté l'auteur Doug Seelinger, source
Dernière étape - redémarrer l'IDE
ajouté l'auteur Sava Jcript, source

Sur un mac avec webstorm 2016.1.1, j'ai procédé comme suit:

  1. Open Preferences (webstorm->preference or [command + ,] )
  2. Go to libraries and frameworks -> JavaScript -> libraries
  3. download
  4. select 'jasmine - DefinitelyTyped' from the list

Jasmine support added to webstorm

25
ajouté
Les mêmes étapes ont fonctionné sous Windows.
ajouté l'auteur Marc Stober, source
J'ai téléchargé la bibliothèque jasmine à l'aide d'IntelliJ 2016.3 sur un ordinateur Windows et cela a fonctionné, même si sans redémarrer.
ajouté l'auteur Jelle, source
Cela a fonctionné pour moi sur mac, mais je devais fermer et redémarrer WebStorm.
ajouté l'auteur Jim, source
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é".
ajouté l'auteur providencemac, source

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

You need to access the JSHint settings via WebStorm's menu system (Lang & Frameworks>JavaScript>Code Quality Tools>JSHint) and click the checkbox to enable it know which environment it is running in.

JSHint setting

6
ajouté
J'utilise la version 2.5.10
ajouté l'auteur Aseem Bansal, source
Jasmine est absente de mes environnements. Comment cela est-il apparu dans le vôtre?
ajouté l'auteur Aseem Bansal, source
@AseemBansal quelle version de jshint utilisez-vous?
ajouté l'auteur prasanthv, source
pas d'option "Bibliothèques" dans WEBSTORM 10
ajouté l'auteur Jessi, source

Avec TypeScript (et Angular2), vous devez simplement activer le compilateur TypeScript dans les paramètres WebStorm ...

Settings > Languages & Settings > TypeScript ...

Sous l'en-tête Compilateur ...

Activer le compilateur TypeScript ...

(J'ai aussi cliqué sur la radio d'utilisation tsconfig.json)

Les méthodes au jasmin seront maintenant reconnues

4
ajouté
J'ai eu la même plainte que la première réponse: fichier corrispondant non inclus dans tsconfig.js , mais j'ai déjà fait ce que vous m'aviez suggéré de faire.
ajouté l'auteur Samuel Thompson, source
Fait intéressant, si je crée un nouveau projet en tant que projet Angular CLI , il les reconnaît. Je ne suis pas sûr de ce qui est différent.
ajouté l'auteur theblang, source
Le problème avec cette solution est que je ne souhaite pas que WebStorm compile mon TypeScript , car j'utilise Webpack .
ajouté l'auteur theblang, source
J'utilise gulp pour transpiler mon TypeScript, si vous configurez votre tsconfig.json correctement, alors TypeScript ne générera PAS de fichiers de sortie, il les validera simplement dans l'EDI.
ajouté l'auteur danday74, source
Cela a presque fonctionné sans erreur pour moi. Cependant, lorsque je le fais, je reçois cette erreur à partir de l'onglet du compilateur Typescript dans WebStorm: Erreur: Erreur: erreur d'analyse tsconfig [{"messageText": "Option de compilateur inconnue 'baseUrl'.", "Catégorie": 1, "code ": 5023}, {" messageText ":" Option 'non connue du compilateur' lib '. "," Catégorie ": 1," code ": 5023}, {" messageText ":" Option inconnue du compilateur' typeRoots '. " , "catégorie": 1, "code": 5023}]
ajouté l'auteur Nikola Schou, source
Travaillé pour moi N'oubliez pas de cocher le tsconfig.json
ajouté l'auteur Michael Kornelakis, source

If you encounter this issue after having generated a project using the Angular CLI then go to File -> Settings -> Languages & Frameworks -> JavaScript -> Libraries and check {your-project-name}/node_modules.

2
ajouté

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

Make sure you've installed @types/jasmine

npm install --save-dev @types/jasmine
2
ajouté