未被捕获的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”。