我已经尝试过设置一个最小的测试演示,但是当我尝试运行测试时我就陷入了困境。
我得到的是:
Listening on 0.0.0.0:9000
Starting tunnel...
Error: Failed to load module request from /tmp/local-selenium-intern/request.js (parent: tests/functional)
at <node_modules/intern/node_modules/dojo/dojo.js:757:12>
at <fs.js:207:20>
at Object.oncomplete <fs.js:107:15>
我期望内部模块(例如request
不需要任何显式配置来正确加载它们。)
我有这个测试配置:
define({
proxyPort: 9000,
proxyUrl: 'http://localhost:9000/',
capabilities: {
'selenium-version': '2.35.0',
'idle-timeout': 30
},
environments: [
{ browserName: 'firefox' },
{ browserName: 'chrome' }
],
maxConcurrency: 3,
useSauceConnect: false,
webdriver: {
host: 'localhost',
port: 4444
},
loader: {
// TODO: What to add here?
},
suites: [ 'tests/unit' ],
functionalSuites: [ 'tests/functional' ],
excludeInstrumentation: /^(?:tests|node_modules)\//
});
tests/functional.js
包含以下内容:
'use strict';
define([
'intern!object',
'intern/chai!assert',
'request'
], function (registerSuite, assert, request) {
registerSuite({
name: 'async demo',
'async test': function () {
var dfd = this.async(1000);
request('http://example.com/test.json').then(dfd.callback(function (data) {
assert.strictEqual(data, 'Hello world!');
}), dfd.reject.bind(dfd));
}
});
});
(来自实习生自己的文档的一个例子。)
提供的示例非常基础,可以通过下载“npm install&amp;&amp;”之前的代码进行测试。 npm start``:
https://github.com/mzedeler/local-selenium-intern/tree/request-broken
答案 0 :(得分:0)
通过查看您的存储库,我看到您使用Intern的Dojo副本中的request
模块修复了该问题。虽然这有效,但最好使用自己的Dojo副本进行测试。实习生(至少非geezer版本)不使用标准Dojo,也不保证其中的功能。当前版本的Dojo(1.10.0)可以通过npm存储库获得,因此很容易将其作为项目依赖项包含在内。
此外,项目中的测试配置有点过时了。具体而言,webdriver
和useSauceConnect
选项已被tunnel
和tunnelOptions
取代。有关Intern 2中更改的更多信息,请参见2.0.0 release notes。