node-qunit не включает мои исходные файлы в область видимости
Я установил node-qunit (stable) из npm, но, похоже, не могу заставить работать какие-либо тесты. Мои исходные файлы, похоже, не включены в область видимости.
./источник/именем MyScript.js:
var myObj = {
a : true
}
./ тест / тесты.js:
test("that a is true", function () {
ok(myObj.a);
});
./ тест / бегун.js:
var runner = require('qunit');
runner.run({
code : './source/myscript.js',
tests : './test/tests.js'
});
./ Makefile:
test :
<tab>node ./test/testrunner.js
.PHONY: install test
Если я запускаю make test
, я получаю ошибку 'ReferenceError: myObj is not defined'
. Исходный файл действительно запускается, потому что он может выдавать ошибки. Он просто не кажется включенным в глобальную сферу, как это должно быть. Это не сработает, если я буду делать это с самого начала. командная строка, согласно инструкциям в узле - QUnit readme . У кого-нибудь есть идеи, как заставить это работать?
1 ответ:
Вы ничего не экспортируете. За кулисами node-qunit использует
require
для загрузки указанных модулей. Чтобы предоставить переменные, когда модуль равенrequire
d, вы должны добавить их вexports
object (или назначьте свой собственный объект переменнойexports
)(есть также синтаксическая ошибка -
;
в объектном литерале)Это работает для меня:
./источник/именем MyScript.js:
exports.myObj = { a: true }
./ тест / тесты.js:
QUnit.module('tests') test("that a is true", function () { ok(myObj.a) })
./ тест / бегун.js:
var runner = require('qunit') runner.run({ code : './source/myscript.js' , tests : './test/tests.js' })