如何使WebStorm识别Jasmine方法?


135

我有一个包含一些Jasmine规范的node.js项目。规范位于spec /子目录中,并且具有jasmine-node所要求的.spec.coffee扩展名。

当我在我的规范文件,打开一个WebStorm IDE,所有的通话beforeEachdescribeit“未解决的函数或方法是()”:显示有蓝色与提示波浪下划线。因此,即使我使用的是3.0 EAP并且应该具有一定数量的Jasmine支持,它也不会自动接受这是Jasmine规格文件的事实。

我尝试进入“文件”>“设置”>“ JavaScript库”,并将Jasmine添加为库(指定jasmine-2.0.0.rc1.js的路径),然后转到“用法范围”子页面并在“项目”旁边的下拉列表,但没有效果-茉莉花方法仍然显示为未解决。

如何告诉WebStorm规范子目录中的所有文件和/或扩展名为.spec.coffee的所有文件都是Jasmine测试,并且能够识别这些测试使用的Jasmine API?


我在3.0 EAP中有同样的问题。这就是为什么我在2.1.5中工作的原因。
Microfed 2011年

您应该将此问题作为问题提交至youtrack.jetbrains.net/issues/WI,以便开发人员可以在将来的版本中解决此类情况。
CrazyCoder

@Microfed,所以您是说2.1.5可以自动识别Jasmine测试吗?这是已经编写的错误吗?
乔·怀特

Answers:


238

您可以在Webstorm / PHPStorm / Idea中使用预定义的JS库存根

  • 打开文件>设置...
  • 选择语言和框架 > JavaScript>库
  • 点击下载...

JavaScript库设置

  • 夹到TypeScript社区存根
  • 查找业力茉莉花(原名jasmine)(如果这样不起作用,请尝试使用茉莉花
  • 点击下载并安装

在此处输入图片说明

我在Jasmine 2.0中使用此设置


2
它被称为业力茉莉花,他们更改了它只是为了帮助我们找到它
Andrzej Rehmann 2014年

7
对我不起作用。“ describe”,“ beforeEach”,“ it”仍显示为灰色下划线。
BuildTester1,2015年

36
如果您不使用业力,则可以选择“ jasmine”库进行下载。这就是尝试茉莉花茉莉后对我
有用

22
即使我正在使用业力,也必须仅下载茉莉花才能使其正常运行。茉莉花没有效果。
Didier L

3
最后一步-重新启动IDE
Sava Jcript

30

在具有webstorm 2016.1.1的Mac上,我执行以下操作:

  1. 打开首选项(webstorm-> preference或[command +,])
  2. 转到库和框架-> javascript->库
  3. 下载
  4. 从列表中选择“茉莉花-DefinitelyTyped”

茉莉花支持添加到webstorm


4
它在Mac上对我有用,但是我需要关闭并重新启动WebStorm。
吉姆(Jim)

我已经jasmine在Windows计算机上使用IntelliJ 2016.3 下载了该库,即使没有重启,它也能正常工作。
耶尔

我还必须将“类型”从“全局”更改为“项目”。双击安装它后,库名称,然后将“可见性”设置
providencemac

6

请注意,如果您在WebStorm中使用诸如JSHint之类的代码质量工具,则添加全局jasmin / karma-jasmine库不会摆脱JSHint错误。

您需要通过WebStorm的菜单系统(“语言和框架”>“ JavaScript”>“代码质量工具”>“ JSHint”)访问JSHint设置,然后单击复选框以使它知道它在哪个环境中运行。

JSHint设置


我的环境中缺少茉莉花。那是如何出现在您的身上?
Aseem Bansal 2015年

@AseemBansal您使用的是什么版本的jshint?
prasanthv

我正在使用版本2.5.10
Aseem Bansal 2015年

4

使用TypeScript(和Angular2),您只需要在WebStorm设置中启用TypeScript编译器即可。

设置>语言和设置> TypeScript ...

在编译器标题下打勾...

启用TypeScript编译器...

(我也单击了使用tsconfig.json广播)

现在可以识别茉莉花方法


该解决方案的问题在于,由于我正在使用,所以我不想WebStorm编译自己的代码。TypeScriptWebpack
theblang

有趣的是,如果我将a new project做为一个Angular CLI项目,那么它将认可它们。我不确定有什么不同。
theblang

我使用gulp转换我的TypeScript,如果正确设置了tsconfig.json,则TypeScript将不会生成输出文件,而只会在IDE中对其进行验证。
danday74 '16

为我工作。别忘了勾选tsconfig.json
Michael Kornelakis

这对我来说几乎没有错误。但是,当我这样做时,我从WebStorm的Typescript编译器选项卡中得到此错误输出:错误:错误:解析tsconfig错误[{“ messageText”:“未知的编译器选项'baseUrl'。”,“类别”:1,“代码“:5023},{” messageText“:”未知的编译器选项'lib'。“,”类别“:1,”代码“:5023},{” messageText“:”未知的编译器选项'typeRoots'。“,”类别“:1,” code“:5023}]
Nikola Schou

4

这也可能是由于缺少依赖项引起的(如果您使用TypeScript开发)。

确保已安装 @types/jasmine

npm install --save-dev @types/jasmine

2

如果使用创建项目后遇到此问题,Angular CLI请转到File -> Settings -> Languages & Frameworks -> JavaScript -> Libraries并检查{your-project-name}/node_modules

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.