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

135

Tengo un proyecto node.js que contiene algunas especificaciones de Jasmine . Las especificaciones están en un subdirectorio spec / y tienen la extensión .spec.coffee, como lo requiere jasmine-node .

Cuando uno abierto de mis archivos de especificaciones en el WebStorm IDE, todas las llamadas a beforeEachy describey itse muestran con azul ondulada subraya con la descripción: "la función no resuelto o método que ()". Entonces, aunque estoy usando el 3.0 EAP y se supone que tiene una cierta cantidad de soporte de Jasmine , no se da cuenta automáticamente de que se trata de un archivo de especificaciones de Jasmine.

Intenté ir a Archivo> Configuración> Bibliotecas JavaScript y agregar Jasmine como biblioteca (especificando la ruta a jasmine-2.0.0.rc1.js), y luego ir a la subpágina Ámbito de uso y marcar "Jasmine" en el lista desplegable junto a "Proyecto", pero eso no tuvo ningún efecto: los métodos de Jasmine siguen apareciendo como no resueltos.

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

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

Respuestas:

238

Puede usar stubs de biblioteca JS predefinidos en Webstorm / PHPStorm / Idea

  • Abrir archivo> Configuración ...
  • Seleccionar idiomas y marcos > JavaScript> Bibliotecas
  • Haga clic en Descargar ...

Configuración de la biblioteca de JavaScript

  • Cambie a stubs de comunidad de TypeScript
  • Encuentra karma-jazmín (originalmente bajo el nombre de jazmín ) (si esto no funciona, prueba con jazmín )
  • Haga clic en Descargar e instalar

ingrese la descripción de la imagen aquí

Estoy usando esta configuración con Jasmine 2.0

oujesky
fuente
2
se llama karma-jazmín, lo cambiaron solo para ayudarnos a encontrarlo
Andrzej Rehmann
77
No funciona para mi "describe", "beforeEach", "it" todavía aparecen con subrayado gris.
BuildTester1
36
Si no está utilizando karma, puede elegir la biblioteca 'jazmín' para descargar. Eso es lo que funcionó para mí después de probar el karma-jazmín
Doug Seelinger
22
Aunque estoy usando karma, tuve que descargar solo jazmín para que funcione. karma-jazmín no funcionó.
Didier L
3
Último paso - reiniciar IDE
Sava Jcript
30

En una mac con webstorm 2016.1.1 hice lo siguiente:

  1. Preferencias abiertas (tormenta web-> preferencia o [comando +,])
  2. Vaya a bibliotecas y marcos -> javascript -> bibliotecas
  3. descargar
  4. seleccione 'jazmín - Definitivamente escrito' de la lista

Soporte de jazmín agregado a la tormenta web

Eran
fuente
44
Funcionó para mí en Mac, pero necesitaba cerrar y reiniciar WebStorm.
Jim
He descargado la jasminebiblioteca usando IntelliJ 2016.3 en una máquina con Windows y funcionó, incluso sin reiniciar.
Jelle
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"
providencemac
6

Tenga en cuenta que si está utilizando una herramienta de calidad de código como JSHint con WebStorm, al agregar la biblioteca global jasmin / karma-jasmine no se eliminaron los errores de JSHint.

Debe acceder a la configuración de JSHint a través del sistema de menús de WebStorm (Lang & Frameworks> JavaScript> Herramientas de calidad de código> JSHint) y hacer clic en la casilla de verificación para saber en qué entorno se está ejecutando.

Configuración de JSHint

prasanthv
fuente
Jasmine no se encuentra en mis entornos. ¿Cómo apareció eso en el tuyo?
Aseem Bansal
@AseemBansal, ¿qué versión de jshint estás usando?
prasanthv
Estoy usando la versión 2.5.10
Aseem Bansal
4

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

Configuraciones> Idiomas y configuraciones> TypeScript ...

Debajo del compilador, marque la casilla ...

Habilitar compilador TypeScript ...

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

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

danday74
fuente
El problema con esta solución es que no quiero WebStormcompilar mi TypeScriptdesde que estoy usando Webpack.
theblang
Curiosamente, si hago new projectun Angular CLIproyecto, entonces los reconoce. No estoy seguro de qué es diferente.
theblang
Uso gulp para transpilar mi TypeScript, si configura su tsconfig.json correctamente, TypeScript NO generará archivos de salida, solo los validará en el IDE.
danday74
Trabajó para mi. No se olvide de marcar tsconfig.json
Michael Kornelakis
Esto casi funcionó sin errores para mí. Sin embargo, cuando hago esto, obtengo este resultado de error de la pestaña del compilador de mecanografiado en WebStorm: Error: Error: Parse tsconfig error [{"messageText": "Opción de compilador desconocido 'baseUrl'.", "Category": 1, "code ": 5023}, {" messageText ":" Opción de compilador desconocida 'lib'. "," Categoría ": 1," código ": 5023}, {" messageText ":" Opción de compilador desconocida 'typeRoots'. "," Categoría ": 1," code ": 5023}]
Nikola Schou
4

Esto también podría deberse a una dependencia que falta (si está desarrollando en TypeScript).

Asegúrate de haber instalado @types/jasmine

npm install --save-dev @types/jasmine
Brad Johnson
fuente
2

Si encuentra este problema después de haber generado un proyecto utilizando el Angular CLI, vaya File -> Settings -> Languages & Frameworks -> JavaScript -> Librariesy verifique {your-project-name}/node_modules.

theblang
fuente