我在尝试使用 qunit 让 javascript 单元测试在命令行上工作时遇到问题。
下面是一些重现错误的示例代码:
文件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');
});
有了这些文件,我可以使用以下命令运行测试(在 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
即使 util.js 不包含任何对“$”的引用,上述命令也会给出相同的“未捕获异常”错误。
我可能需要做一些其他事情来让 qunit 识别“文档”,但我不知道什么或如何。
现在我的问题是:我应该怎么做才能使其正常工作?请务必记住,我想在命令行而不是在浏览器中测试我的文件。 p>
以防万一我在设置过程中做错了什么,这就是我安装node/qunit(在ubuntu下)的方式:
git clone git://github.com/creationix/nvm.git ~/.nvm
在 .bashrc 中,我添加了以下行:
source ~/.nvm/nvm.sh
选择了特定版本的 Node
nvm install v0.9.2
nvm alias default 0.9
并安装了 qunit
npm install -g qunit
最后我也必须将其添加到 .bashrc 中:
export NODE_PATH=~/.nvm/v0.9.2/lib/node_modules
最佳答案
您尚未导入 jQuery:
$ = 要求('jquery'),
jQuery = require('jquery');
如果您使用 browserify,请将其更改为“jquery-browserify”。
关于javascript - qunit 和 jquery 未捕获的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16110027/