Наличие названия спецификации теста в качестве имени теста в браузере - PullRequest
0 голосов
/ 11 октября 2018

Я хочу установить имя спецификации теста в качестве имени теста в стеке браузера.Ниже мой файл конфигурации стека браузера.Я использую транспортир.

 exports.makeDefaultCapabilities = function(that) {
  return {
    browserName: 'chrome',
    chromeOptions: {
      prefs: {
        credentials_enable_service: false,
      args: [
        'disable-infobars=true',
      ]
    },
    loggingPrefs: {
      driver: 'WARNING',
      server: 'WARNING',
      browser: 'INFO'
    },
    'browserstack.user': 'xx'
    'browserstack.key': 'xxx',
    'browserstack.debug': true,
  };
};

exports.config = {

  suites: {
    smoke: [
      '*/*.js'
    ]
  },

  SELENIUM_PROMISE_MANAGER: false,
  baseUrl: undefined,
  framework: 'jasmine',
  allScriptsTimeout: 100000,
  getPageTimeout: 100000,
  maxSessions: 1,
  seleniumAddress: 'https://hub-cloud.browserstack.com/wd/hub',

  getMultiCapabilities: function() {
    let that = this;
    return new Promise(function(resolve) {
      let defaults = exports.makeDefaultCapabilities(that);

      let capabilities = [];


      capabilities.push({
        os: 'OS X',
        os_version: 'High Sierra'
      });

      _.forEach(capabilities, function(capability) {
        _.defaultsDeep(capability, defaults);
      });

      resolve(capabilities);
    });
  },

  beforeSession: function(config, capabilities, specs) {
    capabilities.name = specs && specs[0].split('/').pop() || undefined;
  },

  onPrepare: function() {
    jasmine.getEnv().addReporter(failFast.init());
    let reporter = new SpecReporter();
    jasmine.getEnv().addReporter(reporter);
  }
};

Хук beforeSession не обновляет имя теста в стеке браузера как имя спецификации теста.Ждем любого предложения.Ценю твою помощь.

Спасибо

1 Ответ

0 голосов
/ 11 октября 2018

Включить const request = require('request'); в файл * .conf.js и следующий фрагмент в функцию onPrepare ().Это позволит получить имя вашей тестовой спецификации и изменить имя с помощью BrowserStack REST API.

    jasmine.getEnv().addReporter({
    specStarted: function(result) {
    browser.getCapabilities().then(function (capabilities) {
    browser.getSession().then(function(session){
    var sessionID = session.getId()
    var headers = {
    'Content-Type': 'application/json'
    };
    var dataString = `{"name":"${result.fullName}"}`;
    var options = {
    url: 'https://api.browserstack.com/automate/sessions/' + sessionID + '.json',
    method: 'PUT',
    headers: headers,
    body: dataString,
    auth: {
    'user': browserstackUser,
    'pass': browserstackKey
    }
    };
    function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
    console.log(body);

}
}
request(options, callback);
});
});
}
});
...