Testcafe - тестирование нескольких страниц - PullRequest
0 голосов
/ 27 февраля 2019

Я тестирую веб-сайт со страницей входа в систему, а затем другие страницы, видимые только после входа в систему.

Я создал модель login_page.js следующим образом:

// my_login_page_model.js
import { Selector, t } from 'testcafe';

export default class LoginPage {
  constructor () {
    this.email = Selector('#email');
    this.password = Selector('#password');
    this.signin = Selector('#signinButton');
  }
}

, а затем ясоздали похожие модели страниц для страниц после входа в систему.

В моем тестовом файле я затем создаю экземпляр объекта страницы входа в систему, запускаю тест страницы входа в систему

// my_test_spec.js
test('login in', async t => {
  await t
    .typeText(loginPage.email, config.name)
    .typeText(loginPage.password, config.password)
    .click(loginPage.signin);
  await t.expect(getURL()).contains(pageUrl);
});

test('second test', async t => {
console.log('Creating a new experience');
  await t
    .click(// click a button on the following page);
});

Проблема заключается в запуске второго тестаиз login page и, конечно, он не работает, потому что не может найти идентификаторы страницы после входа в систему.

Как это можно сделать?

1 Ответ

0 голосов
/ 27 февраля 2019

Каждый тест начинается с нуля, и это означает, что чистый профиль, поэтому вы не авторизованы, когда начинается второй тест.Самый простой способ исправить это переместить ваш логин в начале вашего второго теста.Однако, это не очень хорошая практика, потому что вам, вероятно, понадобится авторизация перед большинством тестов.Чтобы решить эту проблему, вы можете выбрать один из следующих вариантов:

1) HTTP-аутентификация для некоторых случаев

2) Роли

3) Используйте beforeEach Hook .Просто вставьте код входа в этот хук, и он будет выполняться перед каждым тестом в приборе.

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