Конфигурация Protractor browserstack-local перестала работать и выдает общую ошибку

Сегодня вечером я смог запустить свои тесты Protractor, используя browserstack-local, но не смог к концу вечера, и я не могу понять, что происходит.

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];
    });
});

Когда я запускаю свои тесты Protractor, я получаю:

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)

Это странно, потому что я ничего не менял в своей среде, так как она в последний раз работала ранее вечером, и теперь я не могу заставить ее работать, не видя этой ошибки. Я безуспешно пытался отладить это, может кто-нибудь помочь мне определить, не упустил ли я что-нибудь?

Заранее спасибо!


person jjelly    schedule 08.02.2017    source источник
comment
Ошибка указывает на проблемы с запуском локального приложения BrowserStack. Я видел такое поведение, если двоичный файл, инициированный для предыдущего тестового запуска, не был правильно завершен. По сути, двоичный файл уже запущен, и скрипт пытается снова его запустить. Вы можете убедиться, что бинарный файл уже запущен, разрешив URL-адрес localhost:45691/check. Если вы видите Up and running, значит, есть активный двоичный экземпляр. Остановите и перезапустите тесты. Если это не так, то лучше обратиться в службу поддержки BrowserStack. Также попробуйте связаться с [email protected].   -  person Mukesh Tiwari    schedule 08.02.2017
comment
@MukeshTiwari большое спасибо за ваш комментарий о моем сценарии. Я попытался перезагрузить свой ноутбук и снова запустить тесты, и, похоже, все снова работает. Ваше предложение звучит так, как будто это могло случиться со мной, но я проверил URL-адрес localhost: 45691/check раньше, и он, похоже, не используется. Я знаю сценарий, о котором вы говорите, и я помню, что было сообщение об ошибке, фактически говорящее мне, что порт 45691 используется. В любом случае, буду иметь это в виду в следующий раз!   -  person jjelly    schedule 09.02.2017


Ответы (1)


"os.tmpDir" устарел, начиная с Node v7.0.0. Попробуйте понизить версию Node и выполнить.

Дополнительные сведения доступны на странице https://github.com/hapijs/hapi/issues/3369

person santhosh kumar    schedule 09.02.2017