1

看到这个问题,但重命名为jQuery无济于事。

我正在尝试在 Webstorm 中进行一些基本的单元测试。即使没有测试,它也找不到其他文件中定义的东西。

我有这个配置文件:

server: http://localhost:9876

load:
  - libs/jquery-1.9.0.min.js
  - src/jquery.combine/jquery.combine.js

但是在运行测试时会出现此错误:

error loading file: /test/src/jquery.combine/jquery.combine.js:2: Uncaught TypeError: Cannot set property 'union' of undefined

路径有点不同,但点击它会显示正确的文件。

jquery.combine.js看起来像这样:

(function($) {
  $.union = function () {
    // ...
  };
}(jQuery));

为什么它没有检测到 jQuery?它正确包含它,因为如果我拼错了路径,它会抱怨缺少文件。

4

1 回答 1

0

我能够在 JetBrains 的帮助下解决这个问题。如果您为 QUnit 添加 jsTestDriver 适配器,这会以某种方式自行解决。WebStorm 与这个捆绑在一起。

我的更新jsTestDriver.conf看起来像这样:

load:
 - libs/qunit-jstd-adapter/equiv.js
 - libs/qunit-jstd-adapter/QUnitAdapter.js
 - libs/jquery/jquery.js
 - src/*.js

test:
 - test/*.js

我正在粘贴从 JetBrains 获得的说明(稍​​作修改),这有助于我解决问题:

1) 删除 jquery.combine/libs/qunit/qunit.js - 这样做会使符号“测试”和“模块”无法解析,

2) 打开 jquery.combine/test/difference.tests.js 并将测试光标放在任何“测试”函数调用上,稍等一下,您会看到建议:“添加 QUnit JsTestDriver 适配器?Alt+Enter”调用此快速修复将打开一个对话框,您应该在其中指定将添加“QUnit JsTestDriver Adapter”文件的目录。

3) 由于 equiv.js 和 QUnitAdapter.js 文件位于您的项目中,将它们加载到 jsTestDriver.conf

4) 现在右键单击 jsTestDriver.conf 并选择运行(JsTestDriver 服务器应该已启动并具有捕获的浏览器)。

于 2013-04-11T14:17:14.870 回答