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?

Joe White
fonte
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

oujesky
fonte
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

Eran
fonte
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

prasanthv
fonte
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

danday74
fonte
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
Brad Johnson
fonte
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.

theblang
fonte