Как запустить Testplane в GitHub CI
Введение
Для запуска Testplane в GitHub CI имеется специальный Github Action, который:
- Занимается кэшированием локальных браузеров (при использовании);
- Пишет статистику упавших тестов в Job summary;
- Помогает с отображением html-отчета с результатами прогона тестов в браузере.
Настройка
Базовый workflow с запуском Testplane:
name: Testplane CI
on: # Правила запуска workflow
push:
branches: [master]
pull_request:
branches: [master]
jobs:
testplane_test:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Use Node.js 18
uses: actions/setup-node@v3
with:
node-version: 18.x
- name: Cache npm dependencies
uses: actions/cache@v3
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
- name: Install npm deps
run: npm install
- name: Run Testplane
id: testplane
uses: gemini-testing/gh-actions-testplane@v1
Action "gemini-testing/gh-actions-testplane" поддерживает следующие параметры:
Параметр | Значение по умолчанию | Описание |
cwd | . | Относительная директория для запуска Testplane (полезно для запуска в монорепозиториях) |
package-manager | npm | Пакетный менеджер, используемый в проекте (один из: npm, pnpm, yarn) |
html-report-prefix | testplane-reports | Префикс пути для отчётов html-репортера |
config-path | '' | Путь к пользовательскому конфигу Testplane |
storybook | '' | Если включено, использует тесты плагина @testplane/storybook (например:
|
set | '' | Список наборов тестов (через запятую) |
browser | '' | Список браузеров для тестирования (через запятую) |
grep | '' | Выражение grep для выбора конкретных тестов |
Пример action с запуском Testplane со всеми параметрами
- name: Run Comprehensive Testplane Suite
id: testplane
uses: gemini-testing/gh-actions-testplane@v1
with:
cwd: "projects/my-project-name" # Указываем путь до проекта (для монорепозиториев)
package-manager: "yarn" # Используем yarn вместо npm
html-report-prefix: "reports/testplane" # Сохраняем отчеты в имеющуюся директорию reports (для сохранения отчетов на gh-pages)
config-path: "configs/testplane.conf.js" # Используем кастомный путь до конфига
storybook: "true" # Запускаем тесты плагина `@testplane/storybook`
set: "smoke,regression" # Запускаем только тесты выбранных сетов
browser: "linux-chrome,linux-firefox" # Запускаем тесты только в двух браузерах
grep: "Login" # Запускаем только тесты, в названии которых есть слово Login
Запуск браузеров в GitHub CI
GitHub CI поддерживает запуск только headless
браузеров.
Также, чтобы chrome браузеры могли корректно работать в CI, необходимо добавить --no-sandbox
в аргументы запуска chrome браузера следующим образом:
{
// ... other Testplane settings
headless: true, // Essential for GitHub CI
browsers: {
// ... other browsers,
"linux-chrome": {
// ... other browser settings
desiredCapabilities: {
// .. other desired capabilities
browserName: "chrome",
browserVersion: "135",
"goog:chromeOptions": {
args: ["--no-sandbox"] // Essential for GitHub CI
}
}
}
}
}