TestRail Integration¶
Domain: Engineering - Core | Skill: testrail | Source: engineering-team/playwright-pro/skills/testrail/SKILL.md
TestRail Integration¶
Bidirectional sync between Playwright tests and TestRail test management.
Prerequisites¶
Environment variables must be set:
- TESTRAIL_URL — e.g., https://your-instance.testrail.io
- TESTRAIL_USER — your email
- TESTRAIL_API_KEY — API key from TestRail
If not set, inform the user how to configure them and stop.
Capabilities¶
1. Import Test Cases → Generate Playwright Tests¶
Steps:
1. Call testrail_get_cases MCP tool to fetch test cases
2. For each test case:
- Read title, preconditions, steps, expected results
- Map to a Playwright test using appropriate template
- Include TestRail case ID as test annotation: test.info().annotations.push({ type: 'testrail', description: 'C12345' })
3. Generate test files grouped by section
4. Report: X cases imported, Y tests generated
2. Push Test Results → TestRail¶
Steps: 1. Run Playwright tests with JSON reporter:
2. Parse results: map each test to its TestRail case ID (from annotations) 3. Calltestrail_add_result MCP tool for each test:
- Pass → status_id: 1
- Fail → status_id: 5, include error message
- Skip → status_id: 2
4. Report: X results pushed, Y passed, Z failed
3. Create Test Run¶
Steps:
1. Call testrail_add_run MCP tool
2. Include all test case IDs found in Playwright test annotations
3. Return run ID for result pushing
4. Sync Status¶
Steps: 1. Fetch test cases from TestRail 2. Scan local Playwright tests for TestRail annotations 3. Report coverage:
TestRail cases: 150
Playwright tests with TestRail IDs: 120
Unlinked TestRail cases: 30
Playwright tests without TestRail IDs: 15
5. Update Test Cases in TestRail¶
Steps:
1. Read the Playwright test for this case ID
2. Extract steps and expected results from test code
3. Call testrail_update_case MCP tool to update steps
MCP Tools Used¶
| Tool | When |
|---|---|
testrail_get_projects |
List available projects |
testrail_get_suites |
List suites in project |
testrail_get_cases |
Read test cases |
testrail_add_case |
Create new test case |
testrail_update_case |
Update existing case |
testrail_add_run |
Create test run |
testrail_add_result |
Push individual result |
testrail_get_results |
Read historical results |
Test Annotation Format¶
All Playwright tests linked to TestRail include:
test('should login successfully', async ({ page }) => {
test.info().annotations.push({
type: 'testrail',
description: 'C12345',
});
// ... test code
});
This annotation is the bridge between Playwright and TestRail.
Output¶
- Operation summary with counts
- Any errors or unmatched cases
- Link to TestRail run/results