fair-playwright
v1.2.0
Published
AI-optimized Playwright test reporter with progressive terminal output and hierarchical step management
Maintainers
Readme
AI-optimized Playwright test reporter with progressive terminal output and hierarchical step management
Features
- 🤖 AI-First Design - Structured output optimized for LLM context
- 📊 MAJOR/MINOR Step Hierarchy - Two-level test organization
- ⚡ Progressive Terminal Output - Live updates with smart compression
- 🎯 Zero Config - Works out of the box
- 🔌 MCP Server - Built-in AI assistant integration
Installation
npm install -D fair-playwrightQuick Start
1. Configure Playwright
// playwright.config.ts
import { defineConfig } from '@playwright/test';
export default defineConfig({
reporter: [['fair-playwright']]
});2. Write Tests
Quick Mode (v1.1.0+) - Compact syntax:
import { test } from '@playwright/test';
import { e2e } from 'fair-playwright';
test('user login', async ({ page }) => {
await e2e.quick('User login flow', [
['Open login page', async () => {
await page.goto('/login');
}],
['Submit credentials', async () => {
await page.getByLabel('Email').fill('[email protected]');
await page.getByLabel('Password').fill('password');
await page.getByRole('button', { name: 'Login' }).click();
}]
]);
});Declarative Mode - Full control:
test('user login', async ({ page }) => {
await e2e.major('User login flow', {
success: 'User logged in successfully',
failure: 'Login failed',
steps: [
{
title: 'Open login page',
success: 'Page opened',
action: async () => {
await page.goto('/login');
}
},
{
title: 'Submit credentials',
success: 'Form submitted',
action: async () => {
await page.getByLabel('Email').fill('[email protected]');
await page.getByLabel('Password').fill('password');
await page.getByRole('button', { name: 'Login' }).click();
}
}
]
});
});3. Run Tests
npx playwright testDocumentation
📚 Full Documentation: https://baranaytass.github.io/fair-playwright/
MCP Server
Fair-playwright includes a Model Context Protocol server for AI assistants:
npx fair-playwright-mcp --helpSee MCP Guide for details.
Examples
Check out the examples directory for complete working examples.
Contributing
Contributions are welcome! Please see CONTRIBUTING.md.
License
MIT © Baran Aytas
