Testcafe вводит точку входа для тестов после авторизации

У меня есть набор тестов (приспособление) с несколькими функциональными тестами для тестового кафе. Они выглядят примерно так:

fixture('Test suite')
  .page(login_url)
  .beforeEach(async (t) => {
    await t.maximizeWindow()
    await page.signIn('username', 'pass');
  });

test('Test case 1', async (t) => {
  await t.expect(page.title.textContent).eql('My Page');}
test('Test case 2', async (t) => {
  await do some other stuff}

Это, очевидно, тратит много времени перед каждым тестом, потому что нам нужно каждый раз входить в систему. Как войти в систему один раз, установить эту страницу в качестве точки входа и начать каждый тест с этой страницы?


person Kate Borowski    schedule 24.12.2020    source источник
comment
Просто комментарий, чтобы проиллюстрировать, где проблемы. Во-первых, фикстурные хуки не имеют доступа к тестируемой странице. С этим можно справиться, используя переменную и условие для выполнения некоторого кода в хуке beforeEach только один раз. Но реальная проблема заключается в том, что TestCafe удаляет все (кеш, файлы cookie и т. д.) перед каждым тестом, как уже упоминалось здесь. Поэтому регистрация только один раз - настоящая проблема в TestCafe. Я удалил свой ответ, потому что он предложил обходной путь только для первой проблемы.   -  person pavelsaman    schedule 24.12.2020


Ответы (1)


Вы можете использовать механизм TestCafe Roles для входа только один раз. Все дальнейшие тесты не потребуют дополнительной аутентификации. Подробнее см. в следующей статье: https://devexpress.github.io/testcafe/documentation/guides/advanced-guides/authentication.html#user-roles

person Alex Kamaev    schedule 25.12.2020