Running Tests
Commands
| Command | Description |
|---|---|
pnpm test | Run all tests headless (all browsers) |
pnpm test:headed | Run with a visible browser window |
pnpm test:ui | Playwright interactive UI mode |
pnpm test:debug | Debug mode with Playwright inspector |
pnpm test:tag <name> [name...] | Run tests for one or more tags |
pnpm test:tag | List all available tags |
Filtering Tests
Filter tests by pattern, file, or browser:
pnpm test -- --grep "dashboard"
pnpm test -- src/tests/smoke/app-loads.spec.ts
pnpm test -- --project=chromium
pnpm test -- --project=firefox
pnpm test -- --project=webkitTest Groups
Tests are tagged by feature area using Playwright's tag API. Tags are defined as typed constants in src/tags.ts — each tag has a value and a description. Run pnpm test:tag with no arguments to list all available tags.
Tests can belong to multiple groups. Combine groups with OR logic:
pnpm test:tag smoke model-browser
pnpm test -- --grep "@smoke|@model-browser"Exclude a group:
pnpm test -- --grep-invert @smokeTags are displayed in the Playwright and Allure reports and can be used to filter results.
To add a new group, add a constant to src/tags.ts and apply it to test files via the tag option on test.describe().
Code Quality
| Command | Description |
|---|---|
pnpm lint | Run ESLint |
pnpm lint:fix | Run ESLint with auto-fix |
pnpm format | Format all files with Prettier |
pnpm format:check | Check formatting without changing |
ESLint is configured with TypeScript and Playwright-specific rules. Prettier handles all formatting. See eslint.config.js and .prettierrc for details.
Reports
After a test run:
pnpm report # Open Playwright HTML report
pnpm allure:generate # Generate Allure report from results
pnpm allure:serve # Serve Allure report with live reload
pnpm allure:open # Open a generated Allure reportThe latest reports from main are published to GitHub Pages: