Как потребовать модули для тестирования NodeJS с помощью Intern JS?

Я получаю сообщение об ошибке Attempt to require unloaded module xxxxxx со следующим тестом intern.js (myfile.js ниже выполняет require('xxxxxx')) для тестирования NodeJS.

define(function(require) {
  var bdd = require('intern!bdd');
  var myfile = require('../myfile.js');
  bdd.describe('the thing being tested', function() {
    bdd.it('do the test', function() {
      ...

Структура каталогов

intern.js
myfile.js
test
|-- test.js

Как мне правильно потребовать файл? Там нет примеров того, как это сделать с тестовым интерфейсом BDD. Есть примеры выполнения этого с другим стилем, как в https://stackoverflow.com/questions/26266469 но это не использует BDD.

Это как-то связано со свойствами, которые мне нужно установить в файле intern.js?


person user779159    schedule 14.06.2015    source источник
comment
возможный дубликат http://stackoverflow.com/questions/26266469/how-do-i-load-the-node-js-http-module-from-within-an-intern-js-test   -  person C Snover    schedule 14.06.2015


Ответы (2)


require работает одинаково с любым интерфейсом Intern. Сложность заключается в том, что требование AMD (которое вы используете в приведенном выше коде) не совпадает с требованием Node (которое вам нужно использовать для загрузки модулей Node).

Если myfiles.js является модулем узла, вам потребуется использовать подключаемый модуль Dojo node для его загрузки, например:

var myfile = require('intern/dojo/node!../myfile');
person jason0x43    schedule 17.06.2015

Шаг 1 сделайте это в определении

define([
   'intern!xyzModule',
   'intern/chai!abcModule',
],function(xyz,abc){

}

Вышеупомянутое равносильно

var xyz = require(intern!xyzModule);
var abc = require(intern!abcModule);

но в некоторых случаях он не может загрузиться с помощью require, поэтому со мной лучше всего использовать описанный выше метод.

person Omer Malik    schedule 12.07.2016