Организация и аннотирование те стов
- Как группировать тесты в сеты для запуска в зависимости от платформы и сценария
- Как использовать теги для фильтрации тестов
- Как добавлять метаинформацию для отчетов и отладки
Введение
По мере роста проекта классической структуры describe/it становится недостаточно: сотни тестов нужно запускать селективно в разных браузерах, группировать по функциональным областям, распределять по CI/CD джобам и управлять нестабильностью. Для решения этих задач Testplane предлагает сеты (группировка тестов по файлам и браузерам), теги (маркировка тестов для фильтрации), метаинформацию (произвольные данные для отчетов) и интеграцию с GUI/HTML-reporter для визуализации и интерактивной работы с результатами.
Разбивка тестов на сеты
Сет — это именованная группа тестов, которая определяет, какие файлы запускать и в каких браузерах. Это основной инструмент для разделения тестов по окружениям и сценариям использования.
Сеты описываются в секции sets конфигурационного файла. Если сеты не указаны, Testplane ищет тесты в папке testplane/.
Для каждого сета можно задать параметры:
files(обязательный) — путь или массив путей к тестовым файлам (поддерживает glob-паттерны)browsers— массив идентификаторов браузеров для запуска тестов данного сета (по умолчанию все из конфигурации)ignoreFiles— массив паттернов для исключения файлов из набора (например, WIP-тесты)
import type { ConfigInput } from "testplane";
export default {
sets: {
desktop: {
files: "tests/desktop/**/*.test.ts",
ignoreFiles: ["tests/desktop/**/*.wip.ts"],
browsers: ["chrome", "firefox", "safari"],
},
mobile: {
files: "tests/mobile/**/*.test.ts",
browsers: ["iphone", "android"],
},
all: {
files: "tests/**/*.test.ts",
// browsers не указан — используются все браузеры из config.browsers
},
},
// ...
} satisfies ConfigInput;
Запуск из командной строки
# Запустить все desktop-тесты
npx testplane --set desktop
# Запустить несколько сетов одновременно
npx testplane --set desktop --set mobile
# Запустить desktop-тесты только в chrome
npx testplane --set desktop --browser chrome
# Запустить тесты по паттерну из сета в определенном браузере
npx testplane --set desktop --browser chrome --grep "payment"
# Без указания сета запустятся все тесты из всех сетов
npx testplane
Разбивайте тесты по фичам (один файл — одна функция). Это позволит гибко комбинировать файлы в разных сетах и избежать огромных файлов на тысячи строк.
Сеты из конфигурационного файла Testplane не отображаются в GUI html-reporter, так как они являются механизмом запуска тестов, а не частью результатов тестирования.
Использование тегов
Тег — это строковая метка, которую можно присвоить тесту или группе тестов. Теги позволяют фильтровать тесты при запуске независимо от их расположения в файловой системе или структуры describe/it.
Статические теги
Теги задаются в опциях теста или сьюта вторым аргументом в поле tag. Все тесты внутри сью та наследуют тег, присвоенный сьюту.
describe("Поиск", { tag: "search" }, function () {
it("Открытие поиска", async ({ browser }) => {
// тег: search
});
it("Выполнение поиска", { tag: "smoke" }, async ({ browser }) => {
// теги: search, smoke
});
it("Фильтрация результатов поиска", { tag: ["smoke", "critical"] }, async ({ browser }) => {
// теги: search, smoke, critical
});
});