Перейти к основному содержимому

switchToRepl

Обзор

Используйте команду switchToRepl, чтобы остановить выполнение теста и открыть интерактивный интерфейс REPL в терминале, в котором можно выполнять код построчно и наблюдать за результатом выполнения в реальном времени. Этот режим позволяет удобно пошабого дебажить проблемные тесты как в локально установленном браузере, так и в удаленном гриде (например, с помощью VNC).

Для более удобного использования REPL-режима рекомендуется использовать расширение для VS Code.

warning

Данная команда доступна только при запуске testplane с опцией --repl. При запуске необходимо явно указать тест и браузер, т.к. в REPL-режиме нельзя запускать сразу несколько тестов.

Использование

await browser.switchToRepl(ctx);

Параметры команды

ИмяТипОписание
contextRecord<string, unknown>Контекст с данными, которые будут доступны в интерактивном режиме.

Примеры использования

it("test", async ({ browser }) => {
console.log("before open repl");

await browser.switchToRepl();

console.log("after open repl");
});

При выполнении данного теста сначала будет выведен текст before open repl в консоль. Затем выполнение теста остановится, и в терминале откроется интерактивный интерфейс REPL, ожидающий ввода команд. Например, можно выполнить следующую команду и сразу получить результат ее выполнения:

> await browser.getUrl();
about:blank

После того, как вы закончите работу в REPL (например, нажатием Cmd+D), выполнение теста продолжится, и в консоли терминала будет выведен текст after open repl, а затем браузер закроется.

Также, можно передать контекст в REPL, чтобы переменная была доступна в интерфейсе. Например:

it("test", async ({browser}) => {
const counter = 1;

await browser.switchToRepl({ counter });
});

Т.к. мы передали в контекст переменную counter, то она будет доступна в терминале:

npx hermione --repl --grep "test" -b "chrome"
> console.log("counter:", counter);
counter: 1