Claude-skills testrail

install
source · Clone the upstream repo
git clone https://github.com/alirezarezvani/claude-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/alirezarezvani/claude-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/.gemini/skills/testrail" ~/.claude/skills/alirezarezvani-claude-skills-testrail && rm -rf "$T"
manifest: .gemini/skills/testrail/SKILL.md
source content

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

/pw:testrail import --project <id> --suite <id>

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

/pw:testrail push --run <id>

Steps:

  1. Run Playwright tests with JSON reporter:
    npx playwright test --reporter=json > test-results.json
    
  2. Parse results: map each test to its TestRail case ID (from annotations)
  3. Call
    testrail_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

/pw:testrail run --project <id> --name "Sprint 42 Regression"

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

/pw:testrail status --project <id>

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

/pw:testrail update --case <id>

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

ToolWhen
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