Я пытаюсь импортировать модуль AMD (модуль ES6, спрятанный в ES5) в тесте транспортира. Я использую шаблон Page Object. Объект страницы - это модуль, который я пытаюсь импортировать.Как настроить транспортир для импорта модулей AMD с requirejs
Вот код ES6:
import {HelloPage} from 'HelloPage';
describe('The demo app', function() {
beforeEach(function() {
browser.get('http://localhost:3000/index.html');
});
it('should say hello',function(){
var helloPage = new HelloPage();
helloPage.setFirstName('Martin');
helloPage.submit();
// then, expect statement.
})
});
Сформированный ES5 код выглядит следующим образом:
define(['HelloPage'], function($__0) {
"use strict";
if (!$__0 || !$__0.__esModule)
$__0 = {default: $__0};
var HelloPage = $__0.HelloPage;
describe('The demo app', function() {
beforeEach(function() {
browser.get('http://localhost:3000/index.html');
});
it('should say hello', function() {
var helloPage = new HelloPage();
helloPage.setFirstName('Martin');
helloPage.submit();
});
});
return {};
});
Проблема заключается в том, что я с помощью определения() из requirejs. Но я никогда не заявлял, что я использую requirejs. Таким образом, я получаю следующее сообщение об ошибке:
Failures:
1) Exception loading: build/test/e2e/Hello.spec.js Error
Message:
ReferenceError: define is not defined
конф файл транспортир так:
exports.config = {
capabilities: {
'browserName': 'chrome'
},
specs: [ 'build/test/e2e/**/*.js'],
jasmineNodeOpts: {
showColors: true,
defaultTimeoutInterval: 30000
}
};
Где я должен объявить в этом файле конфигурации, я использую requirejs для выполнения тестов?
Попробуйте найти требуемые документы здесь: http://requirejs.org/docs/node.html#2 –
Спасибо за ваш комментарий @AndrewEisenberg, это помогает мне найти решение. – Martin