Como faço para que o WebStorm reconheça os métodos Jasmine?


135

Eu tenho um projeto node.js que contém algumas especificações do Jasmine . As especificações estão em um subdiretório spec / e têm a extensão .spec.coffee, conforme exigido pelo jasmine-node .

Quando eu uma aberta dos meus arquivos de especificação na WebStorm IDE, todas as chamadas para beforeEache describee itsão mostrados com o azul squiggly sublinha com a dica: "função não resolvido ou método que ()". Portanto, mesmo que eu esteja usando o EAP 3.0 e que ele deva ter uma certa quantidade de suporte ao Jasmine , não está percebendo automaticamente o fato de que este é um arquivo de especificação do Jasmine.

Tentei entrar em Arquivo> Configurações> Bibliotecas JavaScript e adicionar o Jasmine como uma biblioteca (especificando o caminho para jasmine-2.0.0.rc1.js) e, em seguida, acessar a sub-página Escopo do Uso e verificar "Jasmine" no lista suspensa ao lado de "Projeto", mas isso não teve efeito - os métodos Jasmine ainda aparecem como não resolvidos.

Como posso informar ao WebStorm que todos os arquivos em um subdiretório spec e / ou todos os arquivos com extensão .spec.coffee são testes Jasmine e reconhecem as APIs Jasmine que esses testes estão usando?


Eu tenho o mesmo problema no 3.0 EAP. É por isso que estou trabalhando no 2.1.5.
Microfed 12/11/11

Você deve enviar isso como um problema em youtrack.jetbrains.net/issues/WI para que os desenvolvedores possam resolver esses casos nas versões futuras.
11138 CrazyCoder

@ Microfofado, então você está dizendo que o 2.1.5 reconhece automaticamente os testes do Jasmine? Isso é um bug que já foi escrito?
Joe White

Respostas:


238

Você pode usar stubs de biblioteca JS predefinidos em Webstorm / PHPStorm / Idea

  • Abra Arquivo> Configurações ...
  • Selecione Idiomas e estruturas > JavaScript> Bibliotecas
  • Clique em Download ...

Configurações da biblioteca JavaScript

  • Swich para stubs da comunidade TypeScript
  • Encontre karma-jasmine (originalmente com o nome jasmim ) (se isso não funcionar, tente o jasmim )
  • Clique em Baixar e instalar

insira a descrição da imagem aqui

Estou usando esta configuração com o Jasmine 2.0


2
seu chamado karma-jasmim, eles mudaram apenas para nos ajudar a encontrá-lo
Andrzej Rehmann

7
Nao funciona para mim. "descrevem", "beforeEach", "it" ainda aparece com sublinhado cinza.
BuildTester1

36
Se você não estiver usando karma, basta escolher a biblioteca 'jasmim' para fazer o download. Isso é o que funcionou para mim depois de tentar karma-jasmim
Doug Seelinger

22
Mesmo usando karma, tive que baixar apenas o jasmim para que funcionasse. karma-jasmine não funcionou.
Didier L,

3
Última etapa - reinicie o IDE
Sava Jcript

30

Em um mac com o webstorm 2016.1.1, fiz o seguinte:

  1. Abra Preferências (tempestade na web-> preferência ou [comando +,])
  2. Vá para bibliotecas e estruturas -> javascript -> bibliotecas
  3. baixar
  4. selecione 'jasmim - DefinitelyTyped' na lista

Suporte do Jasmine adicionado ao webstorm


4
Funcionou para mim no mac, mas eu precisava fechar e reiniciar o WebStorm.
Jim

Fiz o download da jasminebiblioteca usando o IntelliJ 2016.3 em uma máquina Windows e funcionou, mesmo sem reiniciar.
Jelle

Eu também tive que mudar o "Tipo" de Global para Projeto. Clique duas vezes no nome da biblioteca após a instalação e altere a configuração "Visibility"
providencemac

6

Observe que, se você estiver usando uma Ferramenta de qualidade de código, como JSHint, com WebStorm, adicionar a biblioteca global jasmin / karma-jasmine não se livra dos erros de JSHint.

Você precisa acessar as configurações do JSHint através do sistema de menus do WebStorm (Lang & Frameworks> JavaScript> Ferramentas de qualidade de código> JSHint) e clicar na caixa de seleção para permitir que ele saiba em que ambiente está executando.

Configuração JSHint


Jasmine está faltando nos meus ambientes. Como isso apareceu na sua?
Aseem Bansal

@AseemBansal qual versão do jshint você está usando?
precisa saber é o seguinte

Estou usando a versão 2.5.10
Bansal

4

Usando o TypeScript (e Angular2), você só precisa ativar o compilador TypeScript nas Configurações da WebStorm ...

Configurações> Idiomas e configurações> TypeScript ...

Sob o título do compilador, marque ...

Ativar compilador TypeScript ...

(Também cliquei no rádio tsconfig.json)

Os métodos Jasmine agora serão reconhecidos


O problema com esta solução é que eu não quero WebStormcompilar o meu TypeScriptdesde que estou usando Webpack.
theblang

Curiosamente, se eu fizer um new projectcomo um Angular CLIprojeto, então ele reconhece-los. Não tenho certeza do que é diferente.
theblang

Eu uso o gulp para transpilar meu TypeScript. Se você configurar o tsconfig.json corretamente, o TypeScript NÃO gerará arquivos de saída, apenas os validará no IDE.
danday74

Trabalhou para mim. Não se esqueça de marcar a tsconfig.json
Michael Kornelakis

Isso quase funcionou sem erros para mim. No entanto, quando faço isso, obtenho essa saída de erro na guia compilador Typescript no WebStorm: Erro: Erro: Erro tsconfig de análise [{"messageText": "Opção desconhecida do compilador 'baseUrl'.", "Categoria": 1, "código ": 5023}, {" messageText ":" Opção de compilador desconhecida 'lib'. "," Category ": 1," code ": 5023}, {" messageText ":" Opção de compilador desconhecida 'typeRoots'. "," Category ": 1," code ": 5023}]
Nikola Schou

4

Isso também pode ser causado por uma dependência ausente (se você estiver desenvolvendo no TypeScript).

Verifique se você instalou @types/jasmine

npm install --save-dev @types/jasmine

2

Se você encontrar esse problema após ter gerado um projeto usando o Angular CLI, vá para File -> Settings -> Languages & Frameworks -> JavaScript -> Librariese verifique {your-project-name}/node_modules.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.