Как работает роль Testcafe за кулисами - PullRequest
3 голосов
/ 07 мая 2019

Мне интересно закулисная логика Roles.Я понимаю, что они используют некоторые файлы cookie и магию локального хранилища, и я предполагаю, что здесь также задействована некоторая магия окон

Я предполагаю, что, поскольку в одном из наших тестов одно из наших свойств окна исчезает, однако без какого-либоКод активно его удаляет.Поэтому я предполагаю, что Roles после входа в систему создаст моментальный снимок, который затем применяется поверх каждого тестового примера, используя useRole()

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

Все примеры заканчивают тест, нажимая на signInButton, я думал о том, чтобы дождаться появления элемента, используя что-то вроде t.expect(element.visible).ok(); который, однако, кажется немного странным (выполнение утверждения в выражении beforeEach.

1 Ответ

2 голосов
/ 08 мая 2019

Роли TestCafe перезагружают страницу и применяют ранее сохраненные файлы cookie и значения локального хранилища или выполняют шаги инициализации, если нет сохраненных значений. Они не хранят и не изменяют свойства окна. Однако сценарии на вашей странице могут давать разные результаты из-за разных значений локального хранилища. Я думаю, что вы можете создать проблему в репозитории TestCafe и предоставить образец страницы, которую можно использовать для воспроизведения этого поведения.

Вы можете добавить t.wait или ClientFunction, который возвращает Promise, в конец функции инициализации роли, чтобы отложить создание снимков локального хранилища.

...