Невозможно заставить стажера запустить модуль Node.js
Я пытаюсь протестировать Intern, чтобы убедиться, что это хорошо подойдет для тестирования. Я пытаюсь проверить следующий код в интернете.
var HelloWorld;
HelloWorld = (function () {
function HelloWorld (name) {
this.name = name || "N/A";
}
HelloWorld.prototype.printHello = function() {
console.log('Hello, ' + this.name);
};
HelloWorld.prototype.changeName = function(name) {
if (name === null || name === undefined) {
throw new Error('Name is required');
}
this.name = name;
};
return HelloWorld;
})();
exports = module.exports = HelloWorld;
Файл находится в js-test-projects/node/lib/HelloWorld.js, а Intern находится в js-test-projects/intern. Я использую ветку 1.0.0 Intern. Всякий раз, когда я пытаюсь включить файл и запускать тест, я не получаю никаких выходных данных после "По умолчанию для консоли репортер". Вот тестовый файл.
define([
'intern!tdd',
'intern/chai!assert',
'dojo/node!../lib/HelloWorld'
], function (tdd, assert, HelloWorld) {
console.log(HelloWorld);
});
1 ответ
1. Предполагая следующую структуру каталогов (в зависимости от вопроса):
js-test-projects/
node/
lib/
HelloWorld.js - `HelloWorld` Node module
tests/
HelloWorld.js - Tests for `HelloWorld`
intern.js - Intern configuration file
intern/
2. Ваш файл конфигурации Intern должен содержать информацию о node
пакет и любые комплекты для запуска:
// ...
// Configuration options for the module loader
loader: {
// Packages that should be registered with the loader in each testing environment
packages: [ 'node' ]
},
// Non-functional test suite(s) to run
suites: [ 'node/tests/HelloWorld' ]
// ...
3. Ваш тестовый файл должен загрузить HelloWorld
используя версию Injo Dojo, вот так:
define([
'intern!tdd',
'intern/chai!assert',
'intern/dojo/node!./node/lib/HelloWorld.js'
], function (tdd, assert, HelloWorld) {
console.log(HelloWorld);
});
Примечание: вам не нужно использовать версию Injo Dojo для загрузки HelloWorld
Модуль узла в этом тесте AMD, это просто удобный способ сделать это. Если у вас есть какой-то другой плагин AMD, для которого узлу требуется модуль узла, это прекрасно.
4. Наконец, чтобы запустить тесты в среде Node.js, используйте Intern's client.js
бегун узла, выполнив следующую команду из intern
каталог:
node client.js config=node/tests/intern