Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Sync tests with TestRail. Use when user mentions "testrail", "test management", "test cases", "test run", "sync test cases", "push results to testrail", or "import from testrail".
.claude/skills/alirezarezvani-testrail/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-08 | ✗→✓ | ▲ Improved | -2% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 168% | 0% |
| case-09 | ✗→✓ | ▲ Improved | -22% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 59% | 0% |
| case-15 | ✗→✓ | ▲ Improved | -40% | 0% |
Bidirectional sync between Playwright tests and TestRail test management.
Environment variables must be set:
TESTRAIL_URL — e.g., https://your-instance.testrail.ioTESTRAIL_USER — your emailTESTRAIL_API_KEY — API key from TestRailIf not set, inform the user how to configure them and stop.
> The TestRail MCP server is not auto-registered (issue #978). pw-testrail > was removed from the plugin's .mcp.json because it failed to connect for every > user (the plugin ships no node_modules). The testrail_* MCP tools used below, > and the /pw:testrail command, will fail with "tool not found" until it is > enabled manually — see the Integrations section of the plugin's CLAUDE.md > (cd integrations/testrail-mcp && npm install, then register the server in your > own user/project MCP config). Setting the env vars alone is not sufficient.
/pw:testrail import --project <id> --suite <id>Steps:
testrail_get_cases MCP tool to fetch test casestest.info().annotations.push({ type: 'testrail', description: 'C12345' })/pw:testrail push --run <id>Steps:
bash npx playwright test --reporter=json > test-results.json
testrail_add_result MCP tool for each test:/pw:testrail run --project <id> --name "Sprint 42 Regression"Steps:
testrail_add_run MCP tool/pw:testrail status --project <id>Steps:
TestRail cases: 150 Playwright tests with TestRail IDs: 120 Unlinked TestRail cases: 30 Playwright tests without TestRail IDs: 15
/pw:testrail update --case <id>Steps:
testrail_update_case MCP tool to update steps| 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 |
All Playwright tests linked to TestRail include:
typescripttest('should login successfully', async ({ page }) => { test.info().annotations.push({ type: 'testrail', description: 'C12345', }); // ... test code });
This annotation is the bridge between Playwright and TestRail.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-07 | pass→pass | 18,809 | 10,421 | -45% | 1 | 1 | 0% | 1,978 | 1,800 | -9% | 0 | 0 | — |
case-01 | fail→fail | 14,482 | 9,368 | -35% | 1 | 1 | 0% | 2,312 | 1,511 | -35% | 0 | 0 | — |
case-08 | fail→pass | 12,440 | 11,409 | -8% | 1 | 1 | 0% | 2,438 | 2,384 | -2% | 0 | 0 | — |
case-02 | fail→fail | 30,910 | 15,515 | -50% | 1 | 1 | 0% | 2,351 | 1,952 | -17% | 0 | 0 | — |
case-03 | fail→fail | 16,560 | 14,481 | -13% | 1 | 1 | 0% | 2,369 | 1,742 | -26% | 0 | 0 | — |
case-04 | pass→pass | 19,356 | 9,869 | -49% | 1 | 1 | 0% | 2,485 | 2,792 | +12% | 0 | 0 | — |
case-05 | pass→pass | 23,357 | 20,101 | -14% | 1 | 1 | 0% | 3,800 | 5,204 | +37% | 0 | 0 | — |
case-06 | fail→pass | 29,025 | 9,021 | -69% | 1 | 1 | 0% | 1,018 | 2,728 | +168% | 0 | 0 | — |
case-09 | fail→pass | 21,626 | 9,392 | -57% | 1 | 1 | 0% | 2,115 | 1,641 | -22% | 0 | 0 | — |
case-10 | fail→pass | 10,225 | 2,601 | -75% | 1 | 1 | 0% | 967 | 1,536 | +59% | 0 | 0 | — |
case-11 | pass→pass | 10,395 | 7,596 | -27% | 1 | 1 | 0% | 877 | 1,322 | +51% | 0 | 0 | — |
case-12 | pass→pass | 10,119 | 7,772 | -23% | 1 | 1 | 0% | 1,472 | 1,298 | -12% | 0 | 0 | — |
case-13 | pass→pass | 8,341 | 1,836 | -78% | 1 | 1 | 0% | 552 | 1,372 | +149% | 0 | 0 | — |
case-14 | fail→fail | 12,896 | 1,519 | -88% | 1 | 1 | 0% | 1,408 | 1,276 | -9% | 0 | 0 | — |
case-15 | fail→pass | 19,915 | 7,883 | -60% | 1 | 1 | 0% | 2,460 | 1,485 | -40% | 0 | 0 | — |
case-16 | fail→fail | 10,826 | 3,973 | -63% | 1 | 1 | 0% | 1,854 | 1,606 | -13% | 0 | 0 | — |
case-17 | pass→pass | 4,331 | 6,994 | +61% | 1 | 1 | 0% | 807 | 1,350 | +67% | 0 | 0 | — |
case-18 | pass→pass | 5,634 | 6,965 | +24% | 1 | 1 | 0% | 863 | 1,288 | +49% | 0 | 0 | — |
case-19 | fail→pass | 10,805 | 1,677 | -84% | 1 | 1 | 0% | 991 | 1,307 | +32% | 0 | 0 | — |
case-20 | fail→pass | 11,835 | 7,214 | -39% | 1 | 1 | 0% | 1,206 | 1,325 | +10% | 0 | 0 | — |
case-21 | pass→pass | 11,703 | 6,596 | -44% | 1 | 1 | 0% | 1,145 | 1,275 | +11% | 0 | 0 | — |
case-22 | pass→pass | 16,993 | 8,075 | -52% | 1 | 1 | 0% | 2,135 | 1,521 | -29% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 19 counted toward the lift figure. The other 3 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +32 percentage points is the difference between those two pass rates over the 19 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
| Model | Method | Date | Lift |
|---|---|---|---|
| gemini-3.6-flash | verified | 8/11/2026 | +36% |
Other measured skills in the registry, with their headline benchmark lift.