Как мне заставить WebStorm распознавать методы Jasmine?


135

У меня есть проект node.js, который содержит некоторые спецификации Jasmine . Спецификации находятся в подкаталоге spec / и имеют расширение .spec.coffee, как того требует jasmine-node .

Когда я открываю один из моих файлов спецификаций в IDE WebStorm , все вызовы beforeEachи describeи itотображаются с синим волнистым подчеркиванием с подсказкой: «Неразрешенная функция или метод it ()». Так что, хотя я использую EAP 3.0 и предполагается, что он имеет некоторую поддержку Jasmine , он не учитывает тот факт, что это файл спецификации Jasmine.

Я попытался зайти в File> Settings> JavaScript Libraries и добавить Jasmine в качестве библиотеки (указав путь к jasmine-2.0.0.rc1.js), а затем перейти на подстраницу Usage Scope и проверить «Jasmine» в раскрывающийся список рядом с «Проект», но это не имело никакого эффекта - методы Жасмин по-прежнему отображаются как неразрешенные.

Как я могу сообщить WebStorm, что все файлы в подкаталоге spec и / или все файлы с расширением .spec.coffee являются тестами Jasmine и могут ли они распознавать API-интерфейсы Jasmine, используемые этими тестами?


У меня такая же проблема в 3.0 EAP. Это причина, почему я работаю в 2.1.5.
Микрофед

Вы должны представить это как проблему на youtrack.jetbrains.net/issues/WI, чтобы разработчики могли рассмотреть такие случаи в будущих версиях.
CrazyCoder

@ Микрофед, значит, вы говорите, что 2.1.5 автоматически распознает тесты Жасмин? Это ошибка, которая уже была написана?
Джо Уайт

Ответы:


238

Вы можете использовать предопределенные заглушки библиотеки JS в Webstorm / PHPStorm / Idea

  • Откройте Файл> Настройки ...
  • Выберите Языки и рамки > JavaScript> Библиотеки
  • Нажмите на Скачать ...

Настройки библиотеки JavaScript

  • Swich to заглушки сообщества TypeScript
  • Найти карма-жасмин (первоначально под названием жасмин ) (если это не работает, попробуйте вместо этого жасмин )
  • Нажмите на Загрузить и установить

введите описание изображения здесь

Я использую эту настройку с Jasmine 2.0


2
он называется карма-жасмин, они изменили его, чтобы помочь нам найти его
Анджей Реманн

7
Не работает для меня. "description", "beforeEach", "it" по-прежнему отображаются с серым подчеркиванием.
BuildTester1

36
Если вы не используете карму, вы можете просто выбрать библиотеку «Жасмин» для загрузки. Вот что сработало для меня после попытки карма-жасмина
Даг Силингер

22
Несмотря на то, что я использую карму, мне пришлось загрузить только жасмин, чтобы она заработала. карма-жасмин не сработала.
Дидье Л

3
Последний шаг - перезапустите IDE
Sava Jcript

30

На Mac с веб-штормом 2016.1.1 я сделал следующее:

  1. Открыть настройки (webstorm-> preference или [command +,])
  2. Перейти к библиотекам и фреймворкам -> javascript -> библиотеки
  3. скачать
  4. выберите «Жасмин - Определенно Тип» из списка

Добавлена ​​поддержка жасмина в веб-шторм


4
Это работало для меня на Mac, но мне нужно было закрыть и перезапустить WebStorm.
Джим

Я загрузил jasmineбиблиотеку с помощью IntelliJ 2016.3 на компьютере с Windows, и она работала, даже без перезапуска.
Jelle

Я также должен был изменить «Тип» с Глобального на Проект. Дважды щелкните имя библиотеки после установки, а затем изменить значение параметра «Видимость»
providencemac

6

Обратите внимание, что если вы используете инструмент контроля качества кода, например JSHint, с WebStorm, добавление глобальной библиотеки jasmin / karma-jasmine не избавит от ошибок JSHint.

Вам нужно получить доступ к настройкам JSHint через систему меню WebStorm (Lang & Frameworks> JavaScript> Инструменты качества кода> JSHint) и установить флажок, чтобы он знал, в какой среде он работает.

Настройка JSHint


Жасмин отсутствует в моей среде. Как это появилось у вас?
Aseem Bansal

@AseemBansal, какую версию jshint вы используете?
prasanthv

Я использую версию 2.5.10
Aseem Bansal

4

С помощью TypeScript (и Angular2), вам просто нужно включить компилятор TypeScript в настройках WebStorm ...

Настройки> Языки и настройки> TypeScript ...

Под заголовком компилятора ...

Включить компилятор TypeScript ...

(Я также нажал на использование радио tsconfig.json)

Жасмин методы теперь будут признаны


Проблема с этим решением состоит в том, что я не хочу WebStormкомпилировать мой, TypeScriptтак как я использую Webpack.
Theblang

Интересно, что если я сделаю проект new projectкак Angular CLIпроект, он узнает их. Я не уверен, что отличается.
Theblang

Я использую gulp для переноса моего TypeScript, если вы правильно настроили свой tsconfig.json, тогда TypeScript НЕ будет генерировать выходные файлы, он просто проверит их в IDE.
danday74

Работал на меня. Не забудьте поставить галочку на tsconfig.json
Майкл Корнелакис

Это почти сработало без ошибок для меня. Однако, когда я делаю это, я получаю эту ошибку на вкладке компилятора Typescript в WebStorm: Ошибка: Ошибка: Parse tsconfig error [{"messageText": "Неизвестная опция компилятора 'baseUrl'.", "Category": 1, "code ": 5023}, {" messageText ":" Неизвестная опция компилятора 'lib'. "," Category ": 1," code ": 5023}, {" messageText ":" Неизвестная опция компилятора 'typeRoots'. "," Category ": 1," code ": 5023}]
Никола Шоу

4

Это также может быть вызвано отсутствием зависимости (если вы разрабатываете в TypeScript).

Убедитесь, что вы установили @types/jasmine

npm install --save-dev @types/jasmine

2

Если вы столкнулись с этой проблемой после того, как сгенерировали проект, используя, Angular CLIто перейдите File -> Settings -> Languages & Frameworks -> JavaScript -> Librariesи проверьте {your-project-name}/node_modules.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.