【问题标题】:Protractor browserstack-local config stopped working and throws generic errorProtractor browserstack-local 配置停止工作并引发一般错误
【发布时间】:2017-02-09 19:53:03
【问题描述】:

今晚早些时候我能够使用 browserstack-local 运行我的 Protractor 测试,但到晚上结束时无法运行,我无法弄清楚发生了什么。

node v7.4.0
protractor v5.0.0
browserstack-local v1.2.0

这是我的 conf.ts 文件:

'use strict';

import { Config, browser } from 'protractor';
import testSuites = require('./testSuites.js');
import browserstack = require('browserstack-local');

const commonCapabilities = {
    'browserstack.user': '*****',
    'browserstack.key': '*****',
    'browserstack.local': true
};

export let config: Config = {
    baseUrl: 'https://localhost:8443',

    seleniumAddress: 'http://hub-cloud.browserstack.com/wd/hub',

    multiCapabilities: [{
        browserName: 'chrome',
        browser_version: '54.0',
        os: 'Windows',
        os_version: '10',
        resolution: '1280x800'
    }],

    specs: ['src/**/*spec.js'],

    suites: testSuites.suites,

    framework: 'mocha',

    mochaOpts: {
        reporter: 'spec',
        slow: 0,              
        timeout: 60000
    },

    allScriptsTimeout: 3600000,

    onPrepare: () => {
        browser.manage().window().setSize(1280, 800);
    },

    params: {
        user: 'seleniumtesting'
    },

    beforeLaunch() {
        console.log('Starting BrowserStack Local...');
        return new Promise((resolve, reject) => {
            exports.bs_local = new browserstack.Local();
            exports.bs_local.start({ key: commonCapabilities['browserstack.key']}, error => {
                if (error) {
                    return reject(error);
                }

                console.log('BrowserStack Started.');
                resolve();
            });
        });
    },

    afterLaunch() {
        return new Promise(resolve => {
            if (!exports.bs_local) {
                console.log('Skipping shutdown of BrowserStack Local...');
                resolve();
                return;
            }

            console.log('Stopping BrowserStack Local...');
            exports.bs_local.stop(resolve);
        });
    }
};

// Code to support common capabilities
exports.config.multiCapabilities.forEach((caps) => {
    Object.keys(commonCapabilities).forEach(i => {
        caps[i] = caps[i] || commonCapabilities[i];
    });
});

当我运行量角器测试时,我得到:

Starting BrowserStack Local...
(node:3755) DeprecationWarning: os.tmpDir() is deprecated. Use os.tmpdir() instead.

/usr/local/lib/node_modules/protractor/node_modules/q/q.js:155
                throw e;
                ^
Error
    at /protractor/node_modules/browserstack-local/lib/Local.js:57:20
    at ChildProcess.exithandler (child_process.js:202:7)
    at emitTwo (events.js:106:13)
    at ChildProcess.emit (events.js:191:7)
    at maybeClose (internal/child_process.js:885:16)
    at Socket.<anonymous> (internal/child_process.js:334:11)
    at emitOne (events.js:96:13)
    at Socket.emit (events.js:188:7)
    at Pipe._handle.close [as _onclose] (net.js:501:12)

这很奇怪,因为自从它上次在晚上早些时候工作以来,我没有在我的环境中进行任何更改,现在我无法再让它运行而没有看到这个错误。我一直在尝试调试这个没有任何运气,如果我遗漏了什么,有人可以帮我发现吗?

提前致谢!

【问题讨论】:

  • 该错误指向启动 BrowserStack Local 应用程序的问题。如果为先前的测试运行启动的二进制文件未正确终止,我已经看到了这种行为。基本上,二进制文件已经在运行并且脚本正在尝试再次启动它。您可以通过解析 URL localhost:45691/check 来确认二进制文件是否已经在运行。如果您看到“启动并运行”,则表示存在一个活动的二进制实例。停止并重新运行您的测试。如果不是上述情况,那么最好联系 BrowserStack 的支持团队。也可以尝试联系 support@browserstack.com。
  • @MukeshTiwari 非常感谢您对我的方案的评论。我尝试重新启动我的笔记本电脑并再次运行测试,一切似乎又恢复了。您的建议听起来可能是发生在我身上的事情,但我之前检查了 localhost:45691/check url,它似乎没有被使用。我知道你所说的场景,我记得有一条错误消息实际上告诉我端口 45691 正在使用中。无论如何,下次会记住这一点!

标签: protractor browserstack


【解决方案1】:

"os.tmpDir" 从 Node v7.0.0 开始弃用。尝试降级您的节点并执行。

更多详情请关注https://github.com/hapijs/hapi/issues/3369

【讨论】:

    猜你喜欢
    • 2020-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-07
    • 2021-11-21
    相关资源
    最近更新 更多