实习功能测试:缺少模块请求

时间:2014-08-12 12:24:05

标签: node.js selenium dojo intern

我已经尝试过设置一个最小的测试演示,但是当我尝试运行测试时我就陷入了困境。

我得到的是:

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

1 个答案:

答案 0 :(得分:0)

通过查看您的存储库,我看到您使用Intern的Dojo副本中的request模块修复了该问题。虽然这有效,但最好使用自己的Dojo副本进行测试。实习生(至少非geezer版本)不使用标准Dojo,也不保证其中的功能。当前版本的Dojo(1.10.0)可以通过npm存储库获得,因此很容易将其作为项目依赖项包含在内。

此外,项目中的测试配置有点过时了。具体而言,webdriveruseSauceConnect选项已被tunneltunnelOptions取代。有关Intern 2中更改的更多信息,请参见2.0.0 release notes