Как пропустить тесты транспортира + жасмина, специфичные для браузеров

Предположим, я автоматизировал 25 тестов и выполнил их в нескольких браузерах, таких как Chrome, Firefox, IE, Edge и Safari. Все тесты (25) хорошо выполняются в Chrome. В Firefox только 20 тестов выполняются нормально из-за того, что несколько API-интерфейсов транспортира не поддерживаются. Точно так же IE может выполнить только 23 теста.

Я хотел бы пропустить тест только для браузеров, которые не поддерживаются для конкретного теста? Есть ли доступный способ?


person user907542    schedule 27.06.2018    source источник


Ответы (2)


Вы можете создать protracotr.conf файл для каждого браузера с конкретным suites, где будут указаны тесты, которые должны запускаться. И выполнить за один раз все protractor.conf файлов.

//protractor.chrome.conf
export let config: Config = {
...
  capabilities: {
    browserName: 'chrome',
    shardTestFiles: true,
    maxInstances: 1
  },

  SELENIUM_PROMISE_MANAGER: false,
  specs: [
    '../test/chrome/**/*.js'
  ]
};

и

//protractor.ie.conf
export let config: Config = {
...
  capabilities: {
    browserName: 'internet explorer',
    shardTestFiles: true,
    maxInstances: 1
  },

  SELENIUM_PROMISE_MANAGER: false,
  specs: [
    '../test/ie/**/*.js'
  ]
};

в вашем package.json:

{
...
  "scripts": {
    "test:all": "npm run test:chrome && test:ie",
    "test:chrome": "protractor ./config/protractor.chrome.conf.js",
    "test:ie": "protractor ./config/protractor.ie.conf.js",
     ...
  },
...
}
person Oleksii    schedule 27.06.2018
comment
Как это решает проблему? напр. в Spec A доступны тесты x, y, z. все тесты в хроме проходят нормально. Но тест y не работает в Firefox из-за определенных API-интерфейсов транспортира. Я хочу пропустить выполнение теста для теста y. Как я могу запустить testY для Chrome и пропустить для Firefox? - person user907542; 27.06.2018

С помощью jasmine2 вы можете фильтровать тесты, используя регулярное выражение. Может быть, вы можете добавить что-то вроде @chrome, @ie в свои тесты, а затем запускать только их, передав флаг grep:

it('should do stuff @ie @chrome', function() {
  ...
});

Затем запустите транспортир, передав флаг grep:

protractor conf.js --grep='@ie'
person Oleksii    schedule 27.06.2018