Есть ли способ остановить тестовый набор с ответом «Успех»? Используя жасмин - PullRequest
0 голосов
/ 06 января 2019

У меня проблема, я хочу, чтобы мой тест остановился в середине о выполнении "ИТ", поэтому переходим к следующему "ИТ". Я нашел два способа сделать это, один с использованием pending () или fail (), однако я хочу сделать что-то подобное, но вместо того, чтобы возвращать это «pending» или «fail», чтобы вернуть успех.

Тестирование комплекта

const URLs = 'https://www.google.com/';
const searchGoogle = 'music eletronic youtube';
const searchYoutube = 'nerdologia';

describe('Start simulator False', () => {
  it('Enter youtube ', () => {
    browser.driver.get(URLs);

    browser.sleep(5000);

    browser.driver.findElement(by.name('q')).sendKeys(searchGoogle);
    browser.driver.findElement(by.xpath('/html/body/div/div[3]/form/div[2]/div/div[3]/center/input[1]')).click();

    browser.sleep(1000);

    // browser.pause();
    browser.driver.findElement(by.xpath('//*[@id="rso"]/div/div/div[2]/div/div/div[1]/a')).click();

    isAngularSite(false);
  });
  it('Search to data random youtube', () => {
    browser.sleep(6000);
    element(by.id('search')).sendKeys(searchYoutube).then((visible) => {
      if (visible) {
        throw 'Error';
      }
      element(by.id('search-icon-legacy')).click();
    });
    // browser.driver.findElement(by.css('[#search]')).sendKeys(searchYoutube);
    browser.sleep(6000);
    browser.driver.findElement(by.xpath('//*[@id="contents"]/ytd-video-renderer[1]')).click().then(() => {
      throw 'Stop the test';
    });
    browser.sleep(6000);
    browser.executeScript('document.querySelector(\'#movie_player > div.html5-video-container > video\').pause();');
  });
})

Protractor.conf.js

const SpecReporter = require('jasmine-spec-reporter').SpecReporter;
const AllureReporter = require('jasmine-allure-reporter');


exports.config = {
  // The address of a running selenium server.
  seleniumAddress: 'http://localhost:4444/wd/hub',

  // Spec patterns are relative to the location of this config.
  specs: [
    'webapp/e2e/spec/*.js',
  ],

  capabilities: {
    browserName: 'chrome',
    shardTestFiles: true,
    maxInstances: 5,
    marionette: true,
    acceptInsecureCerts: true,
    chromeOptions: { args: ['--disable-extensions'] },
    // browserName: 'chrome',

    // chromeOptions: {
    //     args: ['--no-sandbox', '--disable-dev-shm-usage',
    //         "--headless", "--disable-gpu", "--window-size=1366x768" ]
    // }
  },


  // capabilities: {
  //   directConnect: true,
  //   browserName: 'chrome',
  //   marionette: true,
  //   acceptInsecureCerts: true,
  //   chromeOptions: {
  //     args: ['--no-sandbox', '--disable-dev-shm-usage',
  //       '--headless', '--disable-gpu', '--window-size=800x600'],
  //   },
  // },

  //     capabilities: {
  //     'browserName': 'chrome',
  //         'chromeOptions': {'args': ['--disable-extensions']}
  //     //   browserName: 'chrome',
  //     //
  //     //   chromeOptions: {
  //     //       args: [ "--headless", "--disable-gpu", "--window-size=800,600" ]
  //     //   }
  // },

  onPrepare() {
    global.isAngularSite = function (flag) {
      browser.ignoreSynchronization = !flag;
    };

    jasmine.getEnv().addReporter(new SpecReporter({
      displayFailuresSummary: true,
      displayFailuredSpec: true,
      displaySuiteNumber: true,
      displaySpecDuration: true,
    }));
    jasmine.getEnv().addReporter(new AllureReporter({
      resultsDir: 'allure-results',
    }));
    jasmine.getEnv().afterEach((done) => {
      browser.takeScreenshot().then((png) => {
        allure.createAttachment('Screenshot', () => new Buffer(png, 'base64'), 'image/png')();
        done();
      });
    });
    beforeEach(() => {
      originalTimeout = jasmine.DEFAULT_TIMEOUT_INTERVAL;
      jasmine.DEFAULT_TIMEOUT_INTERVAL = 1800000;
    });
    afterEach(() => {
      jasmine.DEFAULT_TIMEOUT_INTERVAL = originalTimeout;
    });
  },

  allScriptsTimeout: 180000,
  getPageTimeout: 180000,


  jasmineNodeOpts: {
    onComplete: null,
    isVerbose: false,
    showColors: true,
    includeStackTrace: true,
    defaultTimeoutInterval: 1800000,
  },
};

как быстрее бегать

protractor protractor.conf.js  --specs='nameOfFile.js'

1 Ответ

0 голосов
/ 07 января 2019

Транспортир использует рамку тестирования жасмина из коробки.

Jasmine позволяет объявить testFunction , переданную в Specs , для получения обратного вызова.

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

Вы можете использовать это, чтобы дать Жасмину знать, что нужно двигаться дальше, вызвав этот аргумент. например,

it('Enter youtube ', (done) => {
  // some operations that you care about running
  done();
  // other operations that you like to skip
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...