Есть ли способ для Protractor Cucumber перезапускать только неудачные тесты браузера? - PullRequest
0 голосов
/ 25 мая 2019

Я использую транспортирующую пластинку и параллельно выполняю тесты браузера с использованием сетки селена.Я не хочу перезапускать все тесты браузера, если один из браузеров потерпел неудачу.

Есть ли способ настроить в конфигурации только перезапуск браузера, который вышел из строя?Конфигурационный файл транспортира

exports.config = {
        seleniumAddress: 'http://localhost:4444/wd/hub',
        getPageTimeout: 600000,
        allScriptsTimeout: 500000,
        defaultTimeoutInterval: 30000,
        framework: 'custom',
        // path relative to the current config file
        frameworkPath: require.resolve('protractor-cucumber-framework'),
        multiCapabilities:
        [{
          'browserName': 'chrome',
          specs: 'features/chrome/*.feature'
        },
        {
          'browserName': 'firefox',
          specs: 'features/firefox/*.feature'
        }],
        baseUrl: 'https://localhost:8080',
        ignoreSynchronization: true,
        cucumberOpts: {
          strict: true,
          require: [
            'hooks/hooks.js',
            'specs/*Spec.js'
          ],
          tags: [
            "@runThis", 
            "~@ignoreThis"
          ],
          profile: false,
          format: 'json:e2e/reports/cucumber-report.json',
          resultJsonOutputFile: 'e2e/reports/cucumber-report.json'
        },
        onPrepare: async function() {

          const fs = require('fs');
          const path = require('path');

          const directory = 'e2e/reports';

          //cleans up the json results from the previous build when using node flake
          fs.readdir(directory, (err, files) => {
            if (err) throw err;

            for (const file of files) {
              fs.unlink(path.join(directory, file), err => {
                if (err) throw err;
              });
            }
          });

          var chai = require('chai');
          chai.use(require('chai-as-promised'));
          global.expect = chai.expect;
          browser.ignoreSynchronization = true;
          await browser.manage().window().maximize();
          browser.waitForAngular();           
          browser.manage().timeouts().implicitlyWait(30000); 

        },
        onComplete: function() {

        }
    }

1 Ответ

0 голосов
/ 29 мая 2019

Да, для этого вам нужно перезапустить репортера с именем файла, который вы хотите передать на выход:

format: ['pretty', 'rerun:@rerun.txt']

, тогда вам нужно запустить транспортир с опциями cucumber, указав имя файла:

protractor test/cucumber/conf/cucumber1Conf.js --cucumberOpts.rerun test/cucumber/@rerun.txt

Более подробную информацию об этом можно найти здесь: https://github.com/protractor-cucumber-framework/protractor-cucumber-framework/issues/89

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...