Jak mogę sprawić, by WebStorm rozpoznawał metody Jasmine?


135

Mam projekt node.js , który zawiera pewne specyfikacje Jasmine . Specyfikacje znajdują się w podkatalogu spec / i mają rozszerzenie .spec.coffee, zgodnie z wymaganiami Jasmine-node .

Kiedy otwarty jeden z moich plików spec w WebStorm IDE, wszystkie wywołania beforeEachi describeoraz itsą pokazane z niebieską falowane podkreśla z podpowiedzi: „Nierozwiązany funkcji lub metody go ()”. Więc nawet jeśli używam EAP 3.0 i powinien on mieć pewną ilość wsparcia dla Jasmine , nie wychwytuje on automatycznie faktu, że jest to plik specyfikacji Jasmine.

Próbowałem wejść do Plik> Ustawienia> Biblioteki JavaScript i dodać Jasmine jako bibliotekę (określając ścieżkę do jasmine-2.0.0.rc1.js), a następnie przejść do podstrony Zakres użycia i zaznaczyć „Jasmine” w rozwijana lista obok „Projekt”, ale to nie przyniosło żadnego efektu - metody Jasmine nadal są wyświetlane jako nierozwiązane.

Jak mogę powiedzieć WebStormowi, że wszystkie pliki w podkatalogu spec i / lub wszystkie pliki z rozszerzeniem .spec.coffee są testami Jasmine i czy rozpoznają interfejsy API Jasmine, z których te testy korzystają?


Mam ten sam problem w 3.0 EAP. To jest powód, dla którego pracuję w 2.1.5.
Mikrofonowanie

Powinieneś zgłosić to jako problem na youtrack.jetbrains.net/issues/WI , aby programiści mogli zająć się takimi przypadkami w przyszłych wersjach.
CrazyCoder,

@Microfed, więc mówisz, że 2.1.5 automatycznie rozpoznaje testy Jasmine? Czy to błąd, który został już napisany?
Joe White

Odpowiedzi:


238

Możesz użyć predefiniowanych skrótów bibliotek JS w Webstorm / PHPStorm / Idea

  • Otwórz plik> Ustawienia ...
  • Wybierz Języki i struktury > JavaScript> Biblioteki
  • Kliknij Pobierz ...

Ustawienia biblioteki JavaScript

  • Przełącz się na kody pośredniczące społeczności TypeScript
  • Znajdź karma-jaśmin (pierwotnie pod nazwą jaśmin ) (jeśli to nie zadziała, spróbuj zamiast tego jaśminu )
  • Kliknij Pobierz i zainstaluj

wprowadź opis obrazu tutaj

Używam tej konfiguracji z Jasmine 2.0


2
nazywa się karma-jaśmin, zmienili to, aby pomóc nam go znaleźć
Andrzej Rehmann

7
Nie działa na mnie. „opisz”, „przed każdym”, „to” nadal pojawiają się z szarym podkreśleniem.
BuildTester1,

36
Jeśli nie używasz karmy, możesz po prostu wybrać bibliotekę „jaśmin” do pobrania. To właśnie zadziałało dla mnie po wypróbowaniu karma-jaśminu
Doug Seelinger

22
Mimo że używam karmy, musiałem pobrać tylko jaśmin, aby działał. karma-jaśmin nie działał.
Didier L

3
Ostatni krok - zrestartuj IDE
Sava Jcript,

30

Na komputerze Mac z burzą internetową 2016.1.1 wykonałem następujące czynności:

  1. Otwórz Preferencje (burza internetowa-> preferencje lub [polecenie +,])
  2. Przejdź do bibliotek i frameworków -> javascript -> biblioteki
  3. Ściągnij
  4. wybierz z listy „jaśmin - zdecydowanieTyped”

Dodano obsługę Jasmine do burzy internetowej


4
Zadziałało na mnie na Macu, ale musiałem zamknąć i ponownie uruchomić WebStorm.
Jim

Pobrałem jasminebibliotekę przy użyciu IntelliJ 2016,3 na komputerze z systemem Windows i to działało, nawet bez ponownego uruchamiania.
Jelle,

Musiałem też zmienić „Typ” z Globalnego na Projekt. Kliknij dwukrotnie nazwę biblioteki po jej zainstalowaniu, a następnie zmień ustawienie „Widoczność”
Providencemac

6

Uwaga, jeśli używasz narzędzia jakości kodu, takiego jak JSHint z WebStorm, dodanie globalnej biblioteki jasmin / karma-jasmine nie pozbyło się błędów JSHint.

Musisz uzyskać dostęp do ustawień JSHint za pośrednictwem systemu menu WebStorm (Lang & Frameworks> JavaScript> Code Quality Tools> JSHint) i kliknąć pole wyboru, aby umożliwić mu sprawdzenie, w którym środowisku działa.

Ustawienie JSHint


Jasmine brakuje w moim otoczeniu. Jak to się pojawiło w twoim?
Aseem Bansal

@AseemBansal jakiej wersji jshint używasz?
prasanthv

Używam wersji 2.5.10
Aseem Bansal

4

Używając TypeScript (i Angular2), wystarczy włączyć kompilator TypeScript w ustawieniach WebStorm ...

Ustawienia> Języki i ustawienia> TypeScript ...

Pod nagłówkiem Kompilator zaznacz ...

Włącz kompilator TypeScript ...

(Kliknąłem też radio use tsconfig.json)

Metody jaśminowe będą teraz rozpoznawane


Problem z tym rozwiązaniem polega na tym, że nie chcę WebStormkompilować mojego, TypeScriptponieważ używam Webpack.
theblang

Co ciekawe, jeśli zrobię projekt new projectjako Angular CLIprojekt, wtedy je rozpozna. Nie wiem, co się zmieniło.
theblang

Używam gulp do transpile mojego TypeScript, jeśli poprawnie skonfigurujesz tsconfig.json, TypeScript NIE wygeneruje plików wyjściowych, po prostu zweryfikuje je w IDE.
danday74

Pracował dla mnie. Nie zapomnij zaznaczyć tsconfig.json
Michael Kornelakis

U mnie to prawie działało bez błędów. Jednak gdy to zrobię, otrzymuję ten komunikat o błędzie z karty kompilatora Typescript w WebStorm: Błąd: Błąd: Parse tsconfig error [{"messageText": "Nieznana opcja kompilatora 'baseUrl'.", "Category": 1, "kod ": 5023}, {" messageText ":" Nieznana opcja kompilatora 'lib'. "," Category ": 1," code ": 5023}, {" messageText ":" Nieznana opcja kompilatora 'typeRoots'. "," Kategoria ": 1," kod ": 5023}]
Nikola Schou

4

Może to być również spowodowane brakującą zależnością (jeśli tworzysz w języku TypeScript).

Upewnij się, że zainstalowałeś @types/jasmine

npm install --save-dev @types/jasmine

2

Jeśli napotkasz ten problem po wygenerowaniu projektu za pomocą, Angular CLIprzejdź do File -> Settings -> Languages & Frameworks -> JavaScript -> Librariesi sprawdź {your-project-name}/node_modules.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.