未被捕获的exception与qunit和jquery
我正在尝试使用qunit获取javascriptunit testing在命令行上工作时遇到问题。
以下是一些重现错误的示例代码:
文件util.js :
function abc() { return 'abc'; } if (typeof module !== 'undefined' && module.exports) { module.exports = { abc: abc }; }
文件util-tests.js
var qunit = require("qunit"); test("Test abc function", function () { equal(util.abc(), 'abc'); });
使用这些文件,我可以使用以下命令运行testing(在testing结果中在shell中提供了一个类似于表的输出):
qunit -c util:util.js -t util-tests.js
现在,如果我将以下内容添加到util.js,就会中断
$(document).ready(function () { /* some code here */ });
这是错误输出:
qunit -c util:util.js -t util-tests.js Testing /home/mfrere/jstst/util.js ... [Error: Uncaught exception in child process.]
同样的问题与:
var a = $;
要么:
var a = document;
所以这让我觉得我需要以某种方式导入jQuery,所以我想添加jquery.js作为命令的依赖关系,如下所示:
qunit -c util:util.js -t util-tests.js -d jquery.js
上面的命令给了我相同的“未捕获exception”错误,即使util.js不包含任何对'$'的引用。
我可能还需要做其他的事情才能认出“文档”,但是我不知道是什么或者怎么样。
现在我的问题是: 我该怎么做才能使这个工作? 记住我想要在命令行中而不是在浏览器中testing我的文件是非常重要的。
以防万一我在安装过程中做了错误,这是我安装节点/ qunit(在Ubuntu下):
git clone git://github.com/creationix/nvm.git ~/.nvm
在.bashrc中,我添加了以下行:
source ~/.nvm/nvm.sh
select了一个特定的节点版本
nvm install v0.9.2 nvm alias default 0.9
并安装了qunit
npm install -g qunit
最后我不得不在.bashrc中join这个:
export NODE_PATH=~/.nvm/v0.9.2/lib/node_modules
你还没有导入jQuery:
$ = require('jquery'), jQuery = require('jquery');
如果您使用的是browserify,请将其更改为“jquery-browserify”。