0

基本的な機能テストを実行しようとしています:

define([
    'intern!object',
    'intern/chai!assert',
    '../Request',
    'require'
], function (registerSuite, assert, Request, require) {
    var request,
        url = 'https://github.com/theintern/intern';

    registerSuite({
        name: 'demo',

        'submit form': function () {
            return this.remote
                .get(require.toUrl('./fixture.html'))
                .findById('operation')
                    .click()
                    .type('hello, world')
                .end()
                .findById('submit')
                    .click()
                .end()
                .setFindTimeout(Infinity)
                .findById('result')
                .setFindTimeout(0)
                .text()
                .then(function (resultText) {
                    assert.ok(resultText.indexOf(
                        '"hello, world" completed successfully') > -1,
                        'On form submission, operation should complete successfully');
                });
        }
    });
});

(intern.js ドキュメントの例) https://github.com/theintern/intern/wiki/Writing-Tests-with-Intern

私の intern.js 構成ファイルは次のとおりです。

define({


proxyPort: 9000,
    proxyUrl: 'http://localhost:9000/',
    capabilities: {
        'selenium-version': '2.41.0'
    },
    environments: [
        { browserName: 'chrome'}
    ],
    maxConcurrency: 3,
    tunnel: "BrowserStackTunnel",
    webdriver: {
        host: 'http://hub.browserstack.com/wd/hub',
        username: 'XXXXX',
        accessKey: 'XXXXX'
    },
    useSauceConnect: false,
    loader: {
        packages: [ 
        {
            name: "dojo",
            location: 'vendor/dojo'
        } 
        ]
    },
    suites: [ "tests/test" ],
    excludeInstrumentation: /^(?:tests|node_modules)\//
});

テストを実行すると、接続は browserstack で行われているように見えますが、テストは失敗し続けます。

-> ./node_modules/.bin/intern-runner config=tests/intern
Listening on 0.0.0.0:9000
Starting tunnel...
BrowserStackLocal v2.2
Ready
Initialised chrome 35.0.1916.114 on XP
Test main - index - test FAILED on chrome 35.0.1916.114 on XP:
TypeError: Cannot read property 'get' of null
  at Test.registerSuite.test  <tests/test.js:11:17>
  at Test.run  <__intern/lib/Test.js:154:19>
  at <__intern/lib/Suite.js:212:13>
  at signalListener  <__intern/node_modules/dojo/Deferred.js:37:21>
  at Promise.then.promise.then  <__intern/node_modules/dojo/Deferred.js:258:5>
  at <__intern/lib/Suite.js:211:46>

WebDriver が読み込まれていないと仮定しましたが、機能テスト内でリモート ブラウザー環境にアクセスするにはどうすればよいですか?

4

1 に答える 1

1

機能テストのみが WebDriver クライアントと対話し、remoteプロパティを持ちます。構成では、テスト スイートをfunctionalSuites配列に含めますsuites

このwebdriverプロパティは使用されなくなったため、構成ファイルでユーザー名とアクセス キーを指定する場合は、tunnelOptions代わりに使用する必要があります。

tunnelOptions: {
    username: <username>,
    accessKey: <accessKey>
}

トンネルは、デフォルトで使用する適切なホスト名を認識しているため、それを提供する必要はありません。

于 2014-07-08T12:04:17.707 に答える