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

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

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

I tried going into File > Settings > JavaScript Libraries, and adding Jasmine as a library (specifying the path to jasmine-2.0.0.rc1.js), and then going to the Usage Scope sub-page and checking "Jasmine" in the drop-down list next to "Project", but that had no effect -- the Jasmine methods still show up as unresolved.

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

120
@Microfed, поэтому вы говорите, что 2.1.5 автоматически распознает тесты Жасмина? Это ошибка, которая уже записана?
добавлено автор Joe White, источник
Вы должны отправить это как проблему в youtrack.jetbrains.net/issues/WI , чтобы разработчики могут адресовать такие случаи в будущих версиях.
добавлено автор CrazyCoder, источник
У меня такая же проблема в 3.0 EAP. Это причина, почему я работаю в 2.1.5.
добавлено автор Microfed, источник

6 ответы

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

  • Open File > Settings...
  • Select Languages & Frameworks > JavaScript > Libraries
  • Click on Download...

JavaScript Library settings

  • Swich to TypeScript community stubs
  • Find karma-jasmine (originally under the name jasmine) (If this does not work, try jasmine instead)
  • Click on Download and Install

enter image description here

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

214
добавлено
и как насчет мокко?
добавлено автор hellboy, источник
Несмотря на то, что я использую карму, мне нужно было скачать только jasmine , чтобы она работала. карма-жасмин не работал.
добавлено автор Didier L, источник
Установка только Jasmine также позволяет Webstorm также распознавать методы Жасмина
добавлено автор Udo, источник
Если вы не можете найти его в списке, он уже установлен - включите его. Если это не избавит от squiggles после выхода из настроек, удалите и повторно загрузите карма-жасмин.
добавлено автор sennett, источник
Использование библиотеки «jasmine» здесь работает с TypeScript и Angular2, но вызывает различную ошибку в тех же методах Jasmine (относительно записи отсутствующих файлов в tsconfig.json). Добавление записи файлов исправлено этим BUT, заставило мои файлы TS прекратить автоматическую компиляцию - окончательное гораздо более простое решение найдено в моем ответе ниже.
добавлено автор danday74, источник
Это работало для меня в PhpStorm с использованием mocha и expect.js
добавлено автор MisterBla, источник
@DidierL! Благодарю. Это именно то, что мне нужно. Пытались понять это уже давно.
добавлено автор user1807337, источник
его называли карма-жасмин, они меняли его, чтобы помочь нам найти его
добавлено автор Hoto, источник
У меня нет опыта с моккой, но определение библиотеки доступно так же, как и для жасмина
добавлено автор oujesky, источник
Я думаю, что единственной целью является помощь автозаполнения (поэтому для IDE не требуется обрабатывать код библиотеки и угадывать, как определяется интерфейс). Это в основном сказано здесь: jetbrains.com/webstorm/webhelp/javascript-libraries. HTML
добавлено автор oujesky, источник
Я новичок в webstorm. Какую добавленную функциональность вы получаете, делая это?
добавлено автор Mike Fisher, источник
Не работает для меня. «описать», «beforeEach», «он» все еще отображается с серым подчеркиванием.
добавлено автор BuildTester1, источник
Если вы не используете карму, вы можете просто выбрать библиотеку «жасмин» для загрузки. Это то, что сработало для меня после попытки карма-жасмина
добавлено автор Doug Seelinger, источник
Последний шаг - перезагрузка IDE
добавлено автор Sava Jcript, источник

На mac с webstorm 2016.1.1 я сделал следующее:

  1. Open Preferences (webstorm->preference or [command + ,] )
  2. Go to libraries and frameworks -> JavaScript -> libraries
  3. download
  4. select 'jasmine - DefinitelyTyped' from the list

Jasmine support added to webstorm

25
добавлено
Точные же шаги работали в Windows.
добавлено автор Marc Stober, источник
Я загрузил библиотеку jasmine , используя IntelliJ 2016.3 на машине Windows, и она работала, даже без перезапуска.
добавлено автор Jelle, источник
Он работал для меня на Mac, но мне нужно было закрыть и перезапустить WebStorm.
добавлено автор Jim, источник
Мне также пришлось изменить «Тип» от «Глобального к проекту». Дважды щелкните имя библиотеки после ее установки, затем измените настройку «Видимость»
добавлено автор providencemac, источник

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

You need to access the JSHint settings via WebStorm's menu system (Lang & Frameworks>JavaScript>Code Quality Tools>JSHint) and click the checkbox to enable it know which environment it is running in.

JSHint setting

6
добавлено
Я использую версию 2.5.10
добавлено автор Aseem Bansal, источник
Жасмин отсутствует в моей среде. Как это проявилось в вашем?
добавлено автор Aseem Bansal, источник
@AseemBansal, какую версию jshint вы используете?
добавлено автор prasanthv, источник
нет опции «Библиотеки» в WEBSTORM 10
добавлено автор Jessi, источник

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

Settings > Languages & Settings > TypeScript ...

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

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

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

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

4
добавлено
Я получил ту же жалобу, что и вы, с первым ответом: corrisponding файл не включен в tsconfig.js , но я уже сделал то, что вы предложили мне сделать
добавлено автор Samuel Thompson, источник
Интересно, что если я создаю новый проект в качестве проекта Angular CLI , тогда он их распознает. Я не уверен, что другое.
добавлено автор theblang, источник
Проблема с этим решением заключается в том, что я не хочу WebStorm компилировать мой TypeScript , так как я использую Webpack .
добавлено автор theblang, источник
Я использую gulp для перевода моего TypeScript, если вы правильно настроили tsconfig.json, тогда TypeScript НЕ будет генерировать выходные файлы, он просто проверит их в среде IDE.
добавлено автор danday74, источник
Это почти без ошибок для меня. Однако, когда я это делаю, я получаю эту ошибку с вкладки компилятора Typcript в WebStorm: Ошибка: Ошибка: Parse tsconfig error [{"messageText": "Неизвестный параметр компилятора 'baseUrl'.", "Category": 1, "code ": 5023}, {" messageText ":" Unknow & zwnj; n параметр компилятора 'lib'. "," Category ": 1," code ": 5023}, {" messageText ":" Неизвестный параметр компилятора 'typeRoots'. " , "категории": 1, "код": 5023}]
добавлено автор Nikola Schou, источник
Работал для меня. Не забудьте отметить tsconfig.json
добавлено автор Michael Kornelakis, источник

If you encounter this issue after having generated a project using the Angular CLI then go to File -> Settings -> Languages & Frameworks -> JavaScript -> Libraries and check {your-project-name}/node_modules.

2
добавлено

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

Make sure you've installed @types/jasmine

npm install --save-dev @types/jasmine
2
добавлено
IDE и редакторы — русскоговорящее сообщество
IDE и редакторы — русскоговорящее сообщество
393 участник(ов)

Общаемся, сравниваем и помогаем друг другу решать задачи с продуктами JetBrains, VS Code, Atom, vim, Emacs, Sublime и т.д. Всё в одном месте, ведь каждый из них хорош по своему. См. также: @js_ru, @typescript_ru, @react_js, @nodejs_ru, @javascript_jobs