Як я можу отримати WebStorm, щоб визнати методи Жасміну?

У мене є проект node.js , який містить Жасмин технічні характеристики. Характеристики знаходяться в специфікації/підкаталозі і мають розширення .spec.coffee, як це вимагається вузлом жасмину .

Коли я відкриваю одну з файлів специфікацій у WebStorm , усі виклики до beforeEach та < Код> описувати і it показуються синім підкресленим підкресленням підказкою: "Нерозв'язана функція або метод it ()". Отже, незважаючи на те, що я використовую 3.0 EAP , і це має бути маємо певну підтримку Jasmine , це не автоматично вибирає той факт, що це специфікація 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, і чи розпізнає він те, що використовують ці тести?

120
@Microfed, так що ви говорите, що 2.1.5 автоматично розпізнає тести Jasmine? Це помилка, яка вже була написана?
додано Автор 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, джерело
Незважаючи на те, що я використовую карму, мені довелося завантажити тільки жасмин , щоб вона працювала. karma-jasmine не спрацювала.
додано Автор Didier L, джерело
Встановлення Jasmine також дозволяє Webstorm також розпізнавати методи Жасмин
додано Автор Udo, джерело
Якщо ви не можете знайти його в списку, ви вже маєте його - включіть його. Якщо це не позбавиться від завивок після виходу з налаштувань, видаліть і перезавантажте карма-жасмин.
додано Автор sennett, джерело
Використання бібліотеки 'jasmine' тут працює з TypeScript і Angular2, але викликає іншу помилку на тих же методах Jasmine (щодо запису відсутніх файлів у tsconfig.json). Остаточне набагато простіше рішення знаходиться в моїй відповіді нижче.
додано Автор danday74, джерело
Це працювало для мене в PhpStorm, використовуючи мокко і expect.js
додано Автор MisterBla, джерело
@DidierL! Дякую. Це саме те, що мені потрібно. Пробували розібратися це вже давно.
додано Автор user1807337, джерело
його називали кармою-жасмином, вони змінили її, щоб допомогти нам знайти її
додано Автор Hoto, джерело
У мене немає досвіду роботи з мокко, але визначення бібліотеки доступне так само, як і для жасмину
додано Автор oujesky, джерело
Я думаю, що єдиною метою є допомога автозаповнення (так що IDE не потрібно обробляти код бібліотеки і вгадати, як визначено інтерфейс). Це в основному сказано тут: jetbrains.com/webstorm/webhelp/javascript-libraries. html
додано Автор oujesky, джерело
Я новачок у webstorm. Які додаткові функції ви отримуєте, виконуючи це?
додано Автор Mike Fisher, джерело
Не працює для мене. "опишемо", "beforeEach", "it" все ще з'являються з сірим підкресленням.
додано Автор 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 ...

Під заголовком компілятора відзначте ...

Увімкнути компілятор TypeScript ...

(Я також натиснув на радіостанцію tsconfig.json)

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

4
додано
Я отримав ту ж саму скаргу, що й ви з першою відповіддю: кореспондуючий файл, не включений у tsconfig.js , але я вже зробив те, що ви запропонували
додано Автор Samuel Thompson, джерело
Цікаво, що якщо я зроблю новий проект як проект Angular CLI , він розпізнає їх. Я не впевнений, що це інше.
додано Автор theblang, джерело
Проблема з цим рішенням полягає в тому, що я не хочу, щоб WebStorm збирав TypeScript , оскільки я використовую Webpack .
додано Автор theblang, джерело
Я використовую gulp для передачі TypeScript, якщо ви правильно налаштуєте ваш tsconfig.json, то TypeScript не буде генерувати вихідні файли, він просто перевірить їх у IDE.
додано Автор danday74, джерело
Це майже працювало без помилок для мене. Однак, коли я роблю це, я отримую цю помилку на вкладці компілятора Typescript у WebStorm: Error: Error: Parse tsconfig error [{"messageText": "Невідомий параметр компілятора" baseUrl. "," Category ": 1," code ": 5023}, {" messageText ":" Unknow & zwnj; n опція компілятора 'lib'. "," Category ": 1," code ": 5023}, {" messageText ":" Невідома опція компілятора "typeRoots". " , "category": 1, "code": 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
додано