node-qunit不包括范围内的源文件

时间:2012-01-14 15:11:07

标签: javascript node.js qunit

我已经从npm安装了node-qunit(stable),但似乎无法进行任何测试。我的源文件似乎没有包含在范围内。

./源/ myscript.js:

var myObj = {
    a : true
}

./测试/ tests.js:

test("that a is true", function () {
     ok(myObj.a);
});

./测试/ runner.js:

var runner = require('qunit');
runner.run({
    code : './source/myscript.js',
    tests : './test/tests.js'
});

./生成文件:

test :
<tab>node ./test/testrunner.js

.PHONY: install test

如果我运行make test,则会出现'ReferenceError: myObj is not defined'错误。源文件确实运行,因为它可能会抛出错误。它似乎并没有像它应该包含在全球范围内。如果我按照node-qunit readme中的说明从命令行执行此操作,则无效。任何人都知道如何使这个工作?

1 个答案:

答案 0 :(得分:5)

你没有出口任何东西。在幕后,node-qunit正在使用require来加载指定的模块。要在模块require d时公开变量,您必须将它们添加到exports对象(或将您自己的对象分配给exports变量)

(对象文字中还存在语法错误 - ;

这对我有用:

./源/ myscript.js:

exports.myObj = {
  a: true
}

./测试/ tests.js:

QUnit.module('tests')

test("that a is true", function () {
  ok(myObj.a)
})

./测试/ runner.js:

var runner = require('qunit')

runner.run({
  code : './source/myscript.js'
, tests : './test/tests.js'
})