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

Запуск и отладка

Запуск тестов

Для запуска тестов используйте команду:

npx testplane

Также тесты можно запускать в GUI-режиме с визуальным интерфейсом:

npx testplane gui

В GUI вы можете:

  • Наблюдать выполнение тестов в реальном времени
  • Просматривать скриншоты, сравнивать и обновлять их
  • Перезапускать отдельные тесты
  • Видеть подробные ошибки с историей команд

Интерфейс Testplane GUI

Подробнее о GUI читайте в разделе HTML Reporter.

Фильтрация тестов при запуске

Предположим, у вас есть такие тесты:

describe("Главная страница", () => {
it("Проверка заголовка", async ({ browser }) => {
// ...
});

it("Проверка наличия поля поиска", async ({ browser }) => {
// ...
});
});

По имени

Опция --grep позволяет запускать тесты по совпадению с именем:

npx testplane --grep "Проверка наличия поля поиска"

Поддерживаются регулярные выражения:

npx testplane --grep "поиска|заголовка"

Опция --grep фильтрует тесты по полному имени (включая все уровни describe и it). Переданная строка интерпретируется как регулярное выражение.

По тегам

Теги помогают группировать тесты, например, отделить быстрые smoke-тесты от полных:

describe("Авторизация", { tag: "auth" }, () => {
it("Успешный вход", { tag: "smoke" }, async ({ browser }) => {
// ...
});
});

Запуск только smoke-тестов:

npx testplane --tag "smoke"         # только smoke-тесты
npx testplane --tag "auth&smoke" # тесты с обоими тегами

По браузеру

По умолчанию тесты запускаются во всех браузерах из конфига. Чтобы запустить только в одном:

npx testplane --browser chrome

Опцию --browser можно указывать несколько раз для запуска в нескольких браузерах:

npx testplane -b chrome -b firefox

Также вы можете указать конкретный браузер в коде теста:

describe("Запуск тестов в разных браузерах", () => {
it("Работает во всех браузерах", async ({ browser }) => {
await browser.url("https://testplane.io/");
});

// Пропустить тест в Safari
testplane.skip.in("safari", "Feature not supported in Safari");
it("Работает только в Chrome и Firefox", async ({ browser }) => {
await browser.url("https://testplane.io/");
// ...
});

// Запустить только в Chrome
testplane.only.in("chrome");
it("Работает только в Chrome", async ({ browser }) => {
await browser.url("https://testplane.io/");
// ...
});
});

По файлу

Чтобы запустить тесты из конкретного файла:

npx testplane tests/login.testplane.ts

Быстрый запуск одного теста

Во время разработки удобно использовать .only():

it.only("Проверка поля поиска", async ({ browser }) => {
// Запустится только этот тест
});

Уберите .only() перед коммитом, иначе в CI запустится только один тест!

Отладка

GUI-режим

Самый простой способ отладки — запустить тесты в GUI:

npx testplane gui

В GUI вы увидите выполнение тестов в реальном времени, скриншоты и ошибки. Можно перезапускать отдельные тесты и наблюдать за их выполнением.

Локальный браузер с DevTools

Для отладки можно открыть видимое окно браузера с DevTools:

npx testplane --local --devtools --headless false --grep "Название теста"

Что произойдет:

  1. Откроется видимое окно браузера
  2. Автоматически откроются Chrome DevTools
  3. Вы сможете наблюдать за выполнением теста
warning
В браузере Firefox нет поддержки DevTools.

REPL-режим

REPL (Read-Eval-Print Loop) — интерактивная консоль для выполнения команд браузера во время теста. Есть несколько способов войти в REPL:

  1. Опции командной строки:

    • --repl — включает REPL-режим. Для входа в консоль вызовите browser.switchToRepl() в коде теста
    • --repl-before-test — автоматически открывает REPL перед запуском теста
    • --repl-on-fail — автоматически открывает REPL при падении теста
    # Открыть REPL при падении теста
    npx testplane --repl-on-fail --grep "Название теста" --browser chrome

    # Открыть REPL перед запуском теста
    npx testplane --repl-before-test --grep "Название теста" --browser chrome
  2. Команда browser.switchToRepl() в коде:

    it("Отладка", async ({ browser }) => {
    await browser.url("/page");
    await browser.switchToRepl(); // Тест остановится здесь

    // В консоли можно выполнять команды:
    // > await browser.$(".button").click()
    // > await browser.getTitle()
    // > Cmd+D или Ctrl+D — выйти из REPL и продолжить тест

    await browser.$(".button").click();
    });

Сохранение браузера после теста

По умолчанию браузер закрывается сразу после теста. Чтобы изучить финальное состояние страницы:

npx testplane --keep-browser --grep "Название теста"
npx testplane --keep-browser-on-fail # только при падении

Полезно для проверки DOM, cookies или localStorage после выполнения теста, а также в связке с MCP, чтобы AI-агент подключился к уже подготовленному браузеру.

Полезные команды

# Запуск всех тестов
npx testplane

# Запуск в GUI с визуальным интерфейсом
npx testplane gui

# Запуск конкретного теста
npx testplane --grep "название теста"

# Запуск только в одном браузере
npx testplane --browser chrome

# Отладка с Chrome DevTools Protocol
npx testplane --devtools --grep "название теста"

# Интерактивная отладка при падении
npx testplane --repl-on-fail --grep "название теста"