我想在量角器測試中導入一個AMD模塊(在ES5中傳輸的ES6模塊)。 我正在使用Page Object模式。而頁面對象是我試圖導入的模塊。如何設置量角器導入與requirejs的AMD模塊
這裏是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
量角器的conf文件是這樣的:
exports.config = {
capabilities: {
'browserName': 'chrome'
},
specs: [ 'build/test/e2e/**/*.js'],
jasmineNodeOpts: {
showColors: true,
defaultTimeoutInterval: 30000
}
};
,我應該在我使用requirejs來執行測試這個配置文件中聲明?
試試看看這裏的requirejs文檔:http://requirejs.org/docs/node.html#2 –
感謝您的評論@AndrewEisenberg,它幫助我找到解決方案。 – Martin