Come posso fare in modo che WebStorm riconosca i metodi Jasmine?


135

Ho un progetto node.js che contiene alcune specifiche di Jasmine . Le specifiche sono in una sottodirectory spec e hanno l'estensione .spec.coffee, come richiesto dal nodo jasmine .

Quando ho aperto uno dei miei file spec nel WebStorm IDE, tutte le chiamate a beforeEache describee itsono indicati con blu sottolinea ondulata con il tooltip: "Funzione non risolti o il metodo esso ()". Quindi, anche se sto usando l' EAP 3.0 e si suppone che abbia una certa quantità di supporto per Jasmine , non si accorge automaticamente che si tratta di un file di specifiche Jasmine.

Ho provato ad andare in File> Impostazioni> Librerie JavaScript e ad aggiungere Jasmine come libreria (specificando il percorso di jasmine-2.0.0.rc1.js), quindi andando nella sottoscheda Usage Scope e controllando "Jasmine" nella elenco a discesa accanto a "Progetto", ma ciò non ha avuto alcun effetto: i metodi Jasmine vengono comunque visualizzati come non risolti.

Come posso dire a WebStorm che tutti i file in una sottodirectory spec, e / o tutti i file con estensione .spec.coffee, sono test Jasmine e riconoscono che le API Jasmine utilizzate da questi test?


Ho lo stesso problema in 3.0 EAP. Questo è il motivo per cui sto lavorando in 2.1.5.
Microfed

Dovresti inviarlo come problema su youtrack.jetbrains.net/issues/WI in modo che gli sviluppatori possano affrontare tali casi nelle versioni future.
CrazyCoder,

@Microfed, quindi stai dicendo che 2.1.5 riconosce automaticamente i test Jasmine? È un bug già scritto?
Joe White,

Risposte:


238

È possibile utilizzare gli stub di libreria JS predefiniti in Webstorm / PHPStorm / Idea

  • Apri file> Impostazioni ...
  • Seleziona Lingue e frame > JavaScript> Librerie
  • Clicca su Scarica ...

Impostazioni della libreria JavaScript

  • Passa agli stub della comunità TypeScript
  • Trova karma-jasmine (originariamente sotto il nome jasmine ) (Se non funziona, prova invece il gelsomino )
  • Fai clic su Scarica e installa

inserisci qui la descrizione dell'immagine

Sto usando questa configurazione con Jasmine 2.0


2
si chiama karma-gelsomino, l'hanno cambiato solo per aiutarci a trovarlo
Andrzej Rehmann,

7
Non funziona per me. "descrivi", "prima di ogni", "esso" appare ancora con una sottolineatura grigia.
BuildTester1

36
Se non stai usando il karma, puoi semplicemente scegliere la libreria "jasmine" per il download. Questo è ciò che ha funzionato per me dopo aver provato il karma-gelsomino
Doug Seelinger,

22
Anche se sto usando il karma, ho dovuto scaricare solo il gelsomino per farlo funzionare. karma-jasmine non ha funzionato.
Didier L

3
Ultimo passo - riavvia IDE
Sava Jcript il

30

Su un mac con webstorm 2016.1.1 ho fatto quanto segue:

  1. Apri Preferenze (webstorm-> preferenza o [comando +,])
  2. Vai a librerie e framework -> javascript -> librerie
  3. Scarica
  4. seleziona 'jasmine - DefinitelyTyped' dall'elenco

Supporto per Jasmine aggiunto al webstorm


4
Ha funzionato per me su Mac, ma avevo bisogno di chiudere e riavviare WebStorm.
Jim,

Ho scaricato la jasminelibreria utilizzando IntelliJ 2016.3 su un computer Windows e ha funzionato, anche senza riavviare.
Jelle,

Ho anche dovuto cambiare il "Tipo" da Globale a Progetto. Fare doppio clic sul nome della libreria dopo averlo installato, quindi modificare l'impostazione "Visibilità"
providencemac

6

Nota, se si utilizza uno strumento di qualità del codice come JSHint con WebStorm, l'aggiunta della libreria globale jasmin / karma-jasmine non ha eliminato gli errori JSHint.

È necessario accedere alle impostazioni di JSHint tramite il sistema di menu di WebStorm (Lang & Frameworks> JavaScript> Strumenti per la qualità del codice> JSHint) e fare clic sulla casella di controllo per consentirgli di sapere in quale ambiente è in esecuzione.

J Impostazione di suggerimento


Jasmine non è presente nei miei ambienti. Come è apparso nel tuo?
Aseem Bansal,

@AseemBansal quale versione di jshint stai usando?
prasanthv,

Sto usando la versione 2.5.10
Aseem Bansal del

4

Utilizzando TypeScript (e Angular2) devi solo abilitare il compilatore TypeScript nelle Impostazioni WebStorm ...

Impostazioni> Lingue e impostazioni> TypeScript ...

Sotto l'intestazione del compilatore spuntare ...

Abilita compilatore TypeScript ...

(Ho anche cliccato sull'uso radio tsconfig.json)

I metodi di gelsomino saranno ora riconosciuti


Il problema con questa soluzione è che non voglio WebStormcompilare il mio TypeScriptpoiché sto usando Webpack.
theblang

È interessante notare che se realizzo new projectun Angular CLIprogetto, allora li riconosce. Non sono sicuro di cosa sia diverso.
theblang

Uso gulp per trascrivere il mio TypeScript, se imposti correttamente tsconfig.json, TypeScript NON genererà i file di output, ma li convaliderà nell'IDE.
danday74,

Ha funzionato per me. Non dimenticare di selezionare tsconfig.json
Michael Kornelakis il

Questo ha funzionato quasi senza errori per me. Tuttavia, quando lo faccio ottengo questo output di errore dalla scheda del compilatore Typescript in WebStorm: Errore: Errore: errore tsconfig di analisi [{"messageText": "Opzione di compilatore sconosciuta 'baseUrl'.", "Categoria": 1, "codice ": 5023}, {" messageText ":" Opzione del compilatore sconosciuta 'lib'. "," Categoria ": 1," codice ": 5023}, {" messageText ":" Opzione del compilatore sconosciuta 'typeRoots'. "," Categoria ": 1," code ": 5023}]
Nikola Schou,

4

Ciò potrebbe anche essere causato da una dipendenza mancante (se si sta sviluppando in TypeScript).

Assicurati di aver installato @types/jasmine

npm install --save-dev @types/jasmine

2

Se si riscontra questo problema dopo aver generato un progetto utilizzando il Angular CLIquindi andare a File -> Settings -> Languages & Frameworks -> JavaScript -> Librariese controllare {your-project-name}/node_modules.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.