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.