Wie kann ich WebStorm dazu bringen, Jasmine-Methoden zu erkennen?


135

Ich habe ein node.js- Projekt, das einige Jasmine- Spezifikationen enthält . Die Spezifikationen befinden sich in einer Spezifikation / einem Unterverzeichnis und haben die Erweiterung .spec.coffee, wie vom Jasmin-Knoten gefordert .

Wenn ich eine meiner Spezifikationsdateien in der WebStorm- IDE öffne , werden alle Aufrufe von beforeEachund describeund itmit blauen Schnörkeln mit dem Tooltip "Ungelöste Funktion oder Methode it ()" angezeigt. Obwohl ich das 3.0 EAP verwende und es eine gewisse Jasmine-Unterstützung haben soll, erkennt es nicht automatisch, dass es sich um eine Jasmine-Spezifikationsdatei handelt.

Ich habe versucht, unter Datei> Einstellungen> JavaScript-Bibliotheken Jasmine als Bibliothek hinzuzufügen (unter Angabe des Pfads zu jasmine-2.0.0.rc1.js), dann zur Unterseite des Verwendungsbereichs zu wechseln und "Jasmine" in der zu überprüfen Dropdown-Liste neben "Projekt", aber das hatte keine Auswirkung - die Jasmine-Methoden werden immer noch als ungelöst angezeigt.

Wie kann ich WebStorm mitteilen, dass alle Dateien in einem Spezifikationsunterverzeichnis und / oder alle Dateien mit der Erweiterung .spec.coffee Jasmine-Tests sind und die von diesen Tests verwendeten Jasmine-APIs erkennen?


Ich habe das gleiche Problem in 3.0 EAP. Aus diesem Grund arbeite ich in 2.1.5.
Microfed

Sie sollten dies als Problem unter youtrack.jetbrains.net/issues/WI einreichen, damit Entwickler solche Fälle in zukünftigen Versionen beheben können.
CrazyCoder

@Microfed, Sie sagen also, dass 2.1.5 Jasmin-Tests automatisch erkennt? Ist das ein Fehler, der bereits geschrieben wurde?
Joe White

Antworten:


238

Sie können vordefinierte JS-Bibliotheksstubs in Webstorm / PHPStorm / Idea verwenden

  • Öffnen Sie Datei> Einstellungen ...
  • Wählen Sie Sprachen & Frameworks > JavaScript> Bibliotheken
  • Klicken Sie auf Download ...

Einstellungen der JavaScript-Bibliothek

  • Wechseln Sie zu TypeScript-Community-Stubs
  • Finden Sie Karma-Jasmin (ursprünglich unter dem Namen Jasmin ) (Wenn dies nicht funktioniert, versuchen Sie stattdessen Jasmin )
  • Klicken Sie auf Herunterladen und installieren

Geben Sie hier die Bildbeschreibung ein

Ich benutze dieses Setup mit Jasmine 2.0


2
Es heißt Karma-Jasmin, sie haben es geändert, nur um uns zu helfen, es zu finden
Andrzej Rehmann

7
Funktioniert bei mir nicht "beschreiben", "vor jedem", "es" erscheint immer noch mit grauer Unterstreichung.
BuildTester1

36
Wenn Sie kein Karma verwenden, können Sie einfach die Jasmin-Bibliothek zum Herunterladen auswählen. Das hat bei mir funktioniert, nachdem ich Karma-Jasmin ausprobiert hatte
Doug Seelinger

22
Obwohl ich Karma benutze, musste ich nur Jasmin herunterladen , damit es funktioniert. Karma-Jasmin hat nicht funktioniert.
Didier L

3
Letzter Schritt - IDE
Sava Jcript

30

Auf einem Mac mit Webstorm 2016.1.1 habe ich folgendes gemacht:

  1. Open Preferences (Webstorm-> Preference oder [Befehl +,])
  2. Gehen Sie zu Bibliotheken und Frameworks -> Javascript -> Bibliotheken
  3. herunterladen
  4. Wählen Sie 'Jasmin - DefinitelyTyped' aus der Liste

Jasmin-Unterstützung zum Webstorm hinzugefügt


4
Es funktionierte für mich auf dem Mac, aber ich musste WebStorm schließen und neu starten.
Jim

Ich habe die jasmineBibliothek mit IntelliJ 2016.3 auf einen Windows-Computer heruntergeladen und sie hat auch ohne Neustart funktioniert .
Jelle

Ich musste auch den "Typ" von "Global" in "Projekt" ändern. Doppelklicken Sie nach der Installation auf den Bibliotheksnamen und ändern Sie dann die Einstellung "Sichtbarkeit"
providencemac

6

Hinweis: Wenn Sie ein Codequalitätstool wie JSHint mit WebStorm verwenden, wurden die JSHint-Fehler durch Hinzufügen der globalen Jasmin / Karma-Jasmin-Bibliothek nicht beseitigt.

Sie müssen über das WebStorm-Menüsystem (Lang & Frameworks> JavaScript> Code Quality Tools> JSHint) auf die JSHint-Einstellungen zugreifen und auf das Kontrollkästchen klicken, damit es weiß, in welcher Umgebung es ausgeführt wird.

JSHint-Einstellung


Jasmin fehlt in meiner Umgebung. Wie ist das bei dir aufgetaucht?
Aseem Bansal

@AseemBansal Welche Version von Jshint verwenden Sie?
Prasanthv

Ich benutze Version 2.5.10
Aseem Bansal

4

Mit TypeScript (und Angular2) müssen Sie nur den TypeScript-Compiler in den WebStorm-Einstellungen aktivieren ...

Einstellungen> Sprachen & Einstellungen> TypeScript ...

Aktivieren Sie unter der Überschrift Compiler das Kontrollkästchen ...

TypeScript Compiler aktivieren ...

(Ich habe auch auf das Radio tsconfig.json klicken geklickt.)

Jasminmethoden werden nun erkannt


Das Problem bei dieser Lösung ist, dass ich WebStormmeine nicht kompilieren möchte , TypeScriptda ich sie verwende Webpack.
Theblang

Interessanterweise erkennt es new projectein Angular CLIProjekt , wenn ich es als Projekt mache . Ich bin mir nicht sicher, was anders ist.
Theblang

Ich verwende gulp, um mein TypeScript zu transpilieren. Wenn Sie Ihre tsconfig.json korrekt einrichten, generiert TypeScript KEINE Ausgabedateien, sondern überprüft sie nur in der IDE.
danday74

Hat für mich gearbeitet. Vergessen Sie nicht, die tsconfig.json
Michael Kornelakis

Das hat bei mir fast fehlerfrei funktioniert. Wenn ich dies tue, erhalte ich jedoch diese Fehlerausgabe von der Registerkarte Typescript-Compiler in WebStorm: Fehler: Fehler: Analyse des tsconfig-Fehlers [{"messageText": "Unbekannte Compileroption 'baseUrl'.", "Kategorie": 1, "Code ": 5023}, {" messageText ":" Unbekannte Compileroption 'lib'. "," Kategorie ": 1," code ": 5023}, {" messageText ":" Unbekannte Compileroption 'typeRoots'. "," Kategorie ": 1," code ": 5023}]
Nikola Schou

4

Dies kann auch durch eine fehlende Abhängigkeit verursacht werden (wenn Sie in TypeScript entwickeln).

Stellen Sie sicher, dass Sie installiert haben @types/jasmine

npm install --save-dev @types/jasmine

2

Wenn Sie auf dieses Problem stoßen, nachdem Sie ein Projekt mit erstellt haben, Angular CLIgehen Sie zu File -> Settings -> Languages & Frameworks -> JavaScript -> Librariesund überprüfen Sie {your-project-name}/node_modules.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.