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

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

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

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

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

По файлу

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

npx testplane tests/login.testplane.ts

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

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

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

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

Отладка

GUI-режим

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

npx testplane gui

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

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

По умолчанию Testplane запускает браузер в headless-режиме (без окна). Для отладки можно открыть видимое окно браузера с DevTools:

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

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

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

REPL-режим

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

Добавьте browser.debug() в код теста:

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

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

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

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

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

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

Полезно для проверки DOM, cookies или localStorage после выполнения теста.

Что делать, если тест упал

Запустите тесты в GUI и кликните на упавший тест, чтобы увидеть текст ошибки, скриншот страницы и историю выполненных команд.

Частые причины:

  • Элемент не найден: проверьте селектор в DevTools
  • Элемент не готов: добавьте ожидание: await element.waitForDisplayed()
  • Тест падает в CI: увеличьте таймауты

Подробное руководство: Отладка тестов

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

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

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

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

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

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

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