NodeJS,WebStorm和Jasmine:ReferenceError:describe在debugging时没有定义

我试图debugging一些使用WebStorm 2016.1.2编写的Jasminetesting。

我的testing代码如下所示:

var should = require("should"); var myLib = require("../my-lib"); describe("Scenario", () => { it("works as expected", () => { myLib.do().should.not.throw() }); }); 

我的目录结构如下所示:

 │ ├───node_modules │ ├───.bin │ ├───aws-sdk │ │ └───<snip> │ ├───jasmine │ │ └───<snip> │ ├───jasmine-core │ │ └───<snip> │ ├───karma │ │ └───<snip> │ ├───karma-jasmine │ │ └───<snip> │ ├───should │ │ └───<snip> │ └───sinon │ └───<snip> ├───spec │ ├───support │ │ └───jasmine.json │ └───my-lib.spec.js └───my-lib.js 

WebStorm中的NodeJS设置如下所示:

WebStorm Javascript库设置

debugging我只是打F5和selectmy-lib.spec.js文件来运行。 我然后得到以下堆栈跟踪:

 "C:\Program Files (x86)\JetBrains\WebStorm 2016.1.2\bin\runnerw.exe" "C:\Program Files\nodejs\node.exe" --debug-brk=22714 my-lib.spec.js Debugger listening on port 22714 c:\Users\<me>\WebstormProjects\my-lib\spec\my-lib.spec.js:4 describe("Scenario", () => { ^ ReferenceError: describe is not defined at Object.<anonymous> (c:\Users\<me>\WebstormProjects\my-lib\spec\<my-lib>.js:4:1) at Module._compile (module.js:410:26) at Object.Module._extensions..js (module.js:417:10) at Module.load (module.js:344:32) at Function.Module._load (module.js:301:12) at Module.runMain [as _onTimeout] (module.js:442:10) at Timer.listOnTimeout (timers.js:92:15) Process finished with exit code 1 

如果有人知道如何让WebStorm认识到茉莉花是全球安装的,那就太棒了。

编辑:我已经build立了一个羯磨运行configurationbuild议莱纳与以下configuration: 噶玛配置

当我点击F5运行这个,Chrome浏览器popup并且是空白的(我已经安装了Chrome的JetBrains插件)

尝试使用jasmine-node模块。

这取决于您按F5时发送到js文件的命令。 它需要是jasmine-node <test files>而不是node <test files>

尝试在控制台/terminal做到这一点,看看它是否工作。 这可能是networking风暴发送错误的命令。

如果你没有安装茉莉花节点,你可以做

npm install jasmine-node -g

您正在使用Node.js运行configuration来运行testing – 而Node对您的testing框架一无所知。 你应该使用testing跑步者(例如业力 – 因为你有业力安装)。 尝试使用业力运行configuration。 请参阅https://confluence.jetbrains.com/display/WI/Running+JavaScript+tests+with+Karma

顺便说一下,如果你喜欢使用应该与业力,尝试业力应该

在你的主文件夹中有一个'package.json'文件。 打开它,你会看到这样的东西:

 { "name": "prep", "version": "1.0.0", "main": "server/server.js", //This can be different "scripts": { "lint": "eslint .", "start": "node .", "posttest": "npm run lint && nsp check" }, .... 

然后在“开始”之后添加以下内容:“节点”,“>testing”:“茉莉花”。 它应该是这样的:

 { "name": "prep", "version": "1.0.0", "main": "server/server.js", "scripts": { "lint": "eslint .", "start": "node .", "test": "jasmine", "posttest": "npm run lint && nsp check" },.... 

然后在terminal中运行“npm test”