Я использую угловой и транспортировочный тест e2e.Как сократить время, необходимое для начала каждого теста? - PullRequest
0 голосов
/ 10 октября 2018

У меня есть этот тест e2e в транспортире:

describe('My App', () => {
 beforeEach(() => {
   // browser.waitForAngularEnabled(false);
 });
 let page: AppPage;
 it('Debe Crear una nueva especie', () => {
   page = new AppPage();
   page.navigateTo().then(() => {
     // if (!browser.waitForAngularEnabled()) { browser.waitForAngularEnabled(true); } 
    });
    page.getLinkEspecies().click().then(() => {
      console.log("HIZO CLICK")
      //Presiona boton 'Nueva Especie'
      page.getButtonNuevaEspecie().click();
      // browser.sleep(1000)
      //Setear categoria, especie y modelo
      page.getOptionCategoria().click();
      // browser.sleep(1000)
      page.getOptionTipoEspecie().click();
      // browser.sleep(1000)
      page.getOptionEspecieComoModelo().click();
      // browser.sleep(1000)
      //Presiona boton 'Continuar'
      page.getButtonContinuar().click();
      // browser.sleep(1000)
      //Presiona boton 'Guardar especie'
      page.getButtonGuardarEspecie().click().then(
        () => {
          browser.wait(page.getAlertMessage().isPresent(), 20000, "FALLO").then(
            () => {
              // browser.sleep(2000)
              page.getAlertMessage().getText().then(
                (texto: string) => {
                  expect(texto).toEqual('Se creo correctamente')
                }
              )
            }
          );
          expect(browser.getCurrentUrl()).toMatch('/#/especies');
        }
      );
    });
  });

});

Моя настройка транспортира:

exports.config = {
  allScriptsTimeout: 300000,
  seleniumServerStartTimeout: 0,
  specs: [
    './e2e/**/*.e2e-spec.ts'
  ],
  capabilities: {
    'browserName': "chrome",
    // this takes seconds so 120 would be 120 seconds.
    // 'idleTimeout': '10'
  },
  directConnect: true,
  baseUrl: 'http://localhost:4200/',
  framework: 'jasmine',
  jasmineNodeOpts: {
    showColors: true,
    defaultTimeoutInterval: 300000,
    print: function() {}
  },
  // SELENIUM_PROMISE_MANAGER: false,
  onPrepare() {
    require('ts-node').register({
      project: 'e2e/tsconfig.e2e.json'
    });
    jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));
    browser.manage().window().setSize(1600, 1000);
    // browser.waitForAngularEnabled(false);
  }
};

Ну, у меня есть две настройки для запускатест.Один эмулируется, а другой не эмулируется.При эмуляции запросы выполняются локально, а при не эмуляции они отправляются на сервер. В эмулируемом контексте тест занимает около 90 секунд.Браузер включен, покажите мне домашнюю страницу, но начните делать это через 90 секунд после начала.В неэмулированном контексте тест каждый раз требует больше времени для запроса бэкендаЭто когда запуск:

здесь он останавливается, чтобы дождаться начала процесса

И последние 90 секунд разрешают его за 15 секунд:

Завершить процесс

В неэмулируемом контексте время больше.Но и тест успешно заканчивается

...