¿Cómo puedo hacer que WebStorm reconozca los métodos Jasmine?

Tengo un proyecto node.js que contiene algunos Jasmine especificaciones. Las especificaciones están en un subdirectorio spec/y tienen la extensión .spec.coffee, según lo requerido por jasmine-node .

Cuando abro uno de mis archivos de especificaciones en el ID WebStorm , todas las llamadas a antes de cada y < code> describe y it se muestran con subrayados azules con la información sobre herramientas: "Función no resuelta o método it ()". Entonces, aunque estoy usando 3.0 EAP y se supone que tiene cierta cantidad de soporte de Jasmine , no se percibe automáticamente en el hecho de que esta es una especificación de Jasmine expediente.

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.

¿Cómo puedo decirle a WebStorm que todos los archivos en un subdirectorio de especificaciones, y/o todos los archivos con extensión .spec.coffee, son pruebas de Jasmine, y hacer que reconozcan las API de Jasmine que están usando esas pruebas?

120
@Microfed, ¿estás diciendo que 2.1.5 reconoce automáticamente las pruebas de Jasmine? ¿Es este un error que ya ha sido escrito?
agregado el autor Joe White, fuente
Debe enviar esto como un problema en youtrack.jetbrains.net/issues/WI para que los desarrolladores Puede abordar tales casos en las futuras versiones.
agregado el autor CrazyCoder, fuente
Tengo el mismo problema en 3.0 EAP. Esta es la razón por la que estoy trabajando en 2.1.5.
agregado el autor Microfed, fuente

6 Respuestas

Puede usar apéndices de biblioteca JS predefinidos en 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

Estoy usando esta configuración con Jasmine 2.0

214
agregado
y que hay de mocha?
agregado el autor hellboy, fuente
Aunque uso karma, tuve que descargar solo jasmine para que funcione. karma-jasmine no funcionó.
agregado el autor Didier L, fuente
La instalación de Jasmine también permite que Webstorm también reconozca los métodos de Jasmine.
agregado el autor Udo, fuente
Si no puede encontrarlo en la lista, ya lo tiene instalado, habilítelo. Si esto no elimina los garabatos después de salir de Configuración, elimine y vuelva a descargar karma-jasmine.
agregado el autor sennett, fuente
El uso de la biblioteca 'jasmine' aquí funciona con TypeScript y Angular2, pero provoca un error diferente en los mismos métodos Jasmine (en relación con una entrada de archivos faltantes en tsconfig.json): agregar la entrada de archivos corregida, PERO provocó que mis archivos TS dejaran de compilarse automáticamente. La solución final mucho más simple se encuentra en mi respuesta a continuación.
agregado el autor danday74, fuente
Esto me funcionó en PhpStorm usando mocha y expect.js
agregado el autor MisterBla, fuente
@DidierL! Gracias. Esto es exactamente lo que necesitaba. He estado tratando de resolver esto desde hace mucho tiempo.
agregado el autor user1807337, fuente
se llama karma-jazmín, lo cambiaron solo para ayudarnos a encontrarlo.
agregado el autor Hoto, fuente
No tengo experiencia con mocha, pero la definición de la biblioteca está disponible de la misma forma que para jazmín.
agregado el autor oujesky, fuente
Creo que el único propósito es la ayuda de autocompletar (por lo que el IDE no necesita procesar el código de la biblioteca y adivinar cómo se define la interfaz). Esto se dice básicamente aquí: jetbrains.com/webstorm/webhelp/javascript-libraries. html
agregado el autor oujesky, fuente
Soy nuevo en webstorm. ¿Qué funcionalidad adicional obtienes haciendo esto?
agregado el autor Mike Fisher, fuente
No funciona para mi "describe", "antes de cada", "todavía" aparece con un subrayado gris.
agregado el autor BuildTester1, fuente
Si no estás utilizando karma, puedes elegir la biblioteca 'jasmine' para descargar. Eso fue lo que funcionó para mí después de probar el karma-jazmín.
agregado el autor Doug Seelinger, fuente
Último paso - reinicie IDE
agregado el autor Sava Jcript, fuente

En un mac con webstorm 2016.1.1 hice lo siguiente:

  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
agregado
Los mismos pasos exactos trabajaron en Windows.
agregado el autor Marc Stober, fuente
He descargado la biblioteca jasmine utilizando IntelliJ 2016.3 en una máquina con Windows y funcionó, incluso sin reiniciar .
agregado el autor Jelle, fuente
Me funcionó en mac, pero necesitaba cerrar y reiniciar WebStorm.
agregado el autor Jim, fuente
También tuve que cambiar el "Tipo" de Global a Proyecto. Haga doble clic en el nombre de la biblioteca después de instalarlo, luego cambie la configuración de "Visibilidad"
agregado el autor providencemac, fuente

Tenga en cuenta que si está utilizando una herramienta de calidad de código como JSHint con WebStorm, agregar la biblioteca global jasmin/karma-jasmine no eliminó los errores de 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
agregado
Estoy usando la versión 2.5.10
agregado el autor Aseem Bansal, fuente
Falta jazmín en mis ambientes. ¿Cómo apareció eso en el tuyo?
agregado el autor Aseem Bansal, fuente
@AseemBansal, ¿qué versión de jshint está usando?
agregado el autor prasanthv, fuente
no hay opción de "Bibliotecas" en WEBSTORM 10
agregado el autor Jessi, fuente

Usando TypeScript (y Angular2) solo necesita habilitar el compilador de TypeScript en la configuración de WebStorm ...

Settings > Languages & Settings > TypeScript ...

Bajo el encabezado del compilador marca ...

Habilitar el compilador de TypeScript ...

(También hice clic en el uso de la radio tsconfig.json)

Los métodos de jazmín ahora serán reconocidos.

4
agregado
Recibí la misma queja que usted con la primera respuesta: archivo de corrección no incluido en tsconfig.js , pero ya hice lo que me sugirió.
agregado el autor Samuel Thompson, fuente
Curiosamente, si hago un nuevo proyecto como un Angular CLI , entonces los reconoce. No estoy seguro de lo que es diferente.
agregado el autor theblang, fuente
El problema con esta solución es que no quiero que WebStorm compile mi TypeScript ya que estoy usando Webpack .
agregado el autor theblang, fuente
Utilizo trago para transpilar mi TypeScript, si configura su tsconfig.json correctamente, entonces TypeScript NO generará archivos de salida, simplemente los validará en el IDE.
agregado el autor danday74, fuente
Esto casi funcionó sin errores para mí. Sin embargo, cuando hago esto, obtengo esta salida de error de la pestaña del compilador Typescript en WebStorm: Error: Error: Parse tsconfig error [{"messageText": "Opción de compilador desconocido 'baseUrl'.", "Categoría": 1, "código ": 5023}, {" messageText ":" No conocido & zwnj; n opción del compilador 'lib'. "," Categoría ": 1," código ": 5023}, {" messageText ":" Opción de compilador desconocido 'typeRoots'. " , "categoría": 1, "código": 5023}]
agregado el autor Nikola Schou, fuente
Trabajó para mi. No te olvides de marcar el tsconfig.json
agregado el autor Michael Kornelakis, fuente

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
agregado

Esto también puede ser causado por una dependencia faltante (si está desarrollando en TypeScript).

Make sure you've installed @types/jasmine

npm install --save-dev @types/jasmine
2
agregado