Тест должен входить в систему для каждой спецификации

#protractor

#транспортир

Вопрос:

Я довольно новичок в транспортире и все еще работаю над ускорением. В настоящее время я испытываю странное поведение с моими тестами транспортира. У меня есть тест входа в систему и тест выхода из системы. Тест входа работает нормально. Но тест выхода из системы завершается неудачей, потому что сначала отображается экран входа в систему, т. Е. независимо от теста я всегда должен входить в систему. Я не могу преодолеть это. Ценю ваши предложения. Прикрепляю мой файл конфигурации транспортира и мою тестовую спецификацию.

 exports.config = {
  specs: [
    './src/**/login.e2e-spec.ts'
  ],
  multiCapabilities: [{
    browserName: 'chrome',
    os: 'Windows',
    os_version: '10',
    build_number: 'local',
    maxInstances: 2
  }],
  SELENIUM_PROMISE_MANAGER: false,
  directConnect: false,
  connectionRetryCount: 3,
  connectionRetryTimeout: 90000,
  baseUrl: 'http://localhost:4200',
  framework: 'jasmine',
  jasmineNodeOpts: {
    showColors: true,
    defaultTimeoutInterval: 30000,
    print: _.noop
  },
  onPrepare: () => {
    tsNode.register({
      project: path.join(__dirname, './tsconfig.e2e.json')
    });
    let reporter = new SpecReporter();
    jasmine.getEnv().addReporter(reporter);
  }
};
  

test.spec.ts

 import { $, browser } from 'protractor';
import { protractor } from 'protractor/built/ptor';

describe('Login page', () => {
  let EC = protractor.ExpectedConditions;

  it('should allow the  test user to login', async () => {
    await $('input[name=email]').sendKeys('abc@xyz.com');
    await $('input[name=password]').sendKeys('pwd');
    await $('button.auth0-lock-submit').click();
    await browser.wait(EC.titleContains('user'), 15000);
  });

  it('should allow the test user to logout', async () => {
    await $('logoutbutton').click();
    await browser.wait(EC.titleContains('loginpage'), 15000);
  });
});

  

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

Комментарии:

1. можете ли вы показать, как выглядит ваш файл спецификации? чтобы протестировать выход из системы, конечно, вы должны сначала войти в систему…

2. Теперь я добавил файл test.spec.ts

3. Проблема в том, что браузер перезагружается и запускает чистый экземпляр для каждого it блока, поэтому для проверки выхода из системы вам необходимо сначала войти в систему. Вы должны добавить вход во вторую it , прежде чем пытаться выйти из системы. Или, может быть, сделать так, чтобы вход и выход происходили в одном и том же тесте. Кроме того, вы могли бы добавить beforeEach функцию и поместить туда код входа, чтобы он входил в систему перед каждым it блоком