Smart Test Reporting
Generate test report.
How to use it
Claude Code
- Run the line below. It pulls the whole folder into
~/.claude/skills/report, including the files SKILL.md points to. - Describe your job in plain words. Claude Code follows the skill from there.
Claude Code — installs the whole folder, not just SKILL.md
npx degit alirezarezvani/claude-skills/engineering-team/playwright-pro/skills/report#main ~/.claude/skills/reportFor one project only, change the path to .claude/skills/report. This skill also uses -report.md — copying SKILL.md alone won't be enough. See the folder on GitHub.
Claude (web or desktop app)
- On this page open ⋯ → Download .md.
- Save it as SKILL.md in a folder, zip the folder, then Customize → Skills → + → Create skill → Upload a skill.
- Pick the file and Save. Claude shows the name and description and runs a security scan.
- Check the skill is switched on.
- Start a new chat and describe your job in plain words. The AI follows the skill from there.
ChatGPT or another app
- ChatGPT: make a Project and paste it into Instructions.
- Neither? Paste it at the top of a new chat — it works for that chat.
Not working?
- Check which app you pasted it into — the steps above name the right one.
- Some skills need the paid tier of Claude or ChatGPT.
Paste into Claude, ChatGPT or Cursor.
Source of Smart Test Reporting
Show the full text127 lines
| name | description |
|---|---|
| report | >- Generate test report. Use when user says "test report", "results summary", test status", "show results", "test dashboard", or "how did tests go". |
Smart Test Reporting
Generate test reports that plug into the user's existing workflow. Zero new tools.
Steps
1. Run Tests (If Not Already Run)
Check if recent test results exist:
ls -la test-results/ playwright-report/ 2>/dev/null
If no recent results, run tests:
npx playwright test --reporter=json,html,list 2>&1 | tee test-output.log
2. Parse Results
Read the JSON report:
npx playwright test --reporter=json 2> /dev/null
Extract:
- Total tests, passed, failed, skipped, flaky
- Duration per test and total
- Failed test names with error messages
- Flaky tests (passed on retry)
3. Detect Report Destination
Check what's configured and route automatically:
| Check | If found | Action |
|---|---|---|
TESTRAIL_URL env var |
TestRail configured | Push results via /pw:testrail push |
SLACK_WEBHOOK_URL env var |
Slack configured | Post summary to Slack |
.github/workflows/ |
GitHub Actions | Results go to PR comment via artifacts |
playwright-report/ |
HTML reporter | Open or serve the report |
| None of the above | Default | Generate markdown report |
4. Generate Report
Markdown Report (Always Generated)
# Test Results — {{date}}
## Summary
- ✅ Passed: {{passed}}
- ❌ Failed: {{failed}}
- ⏭️ Skipped: {{skipped}}
- 🔄 Flaky: {{flaky}}
- ⏱️ Duration: {{duration}}
## Failed Tests
| Test | Error | File |
|---|---|---|
| {{name}} | {{error}} | {{file}}:{{line}} |
## Flaky Tests
| Test | Retries | File |
|---|---|---|
| {{name}} | {{retries}} | {{file}} |
## By Project
| Browser | Passed | Failed | Duration |
|---|---|---|---|
| Chromium | X | Y | Zs |
| Firefox | X | Y | Zs |
| WebKit | X | Y | Zs |
Save to test-reports/{{date}}-report.md.
Slack Summary (If Webhook Configured)
curl -X POST "$SLACK_WEBHOOK_URL" \
-H 'Content-Type: application/json' \
-d '{
"text": "🧪 Test Results: ✅ {{passed}} | ❌ {{failed}} | ⏱️ {{duration}}\n{{failed_details}}"
}'
TestRail Push (If Configured)
Invoke /pw:testrail push with the JSON results.
HTML Report
npx playwright show-report
Or if in CI:
echo "HTML report available at: playwright-report/index.html"
5. Trend Analysis (If Historical Data Exists)
If previous reports exist in test-reports/:
- Compare pass rate over time
- Identify tests that became flaky recently
- Highlight new failures vs. recurring failures
Output
- Summary with pass/fail/skip/flaky counts
- Failed test details with error messages
- Report destination confirmation
- Trend comparison (if historical data available)
- Next action recommendation (fix failures or celebrate green)
| 1 | |
| 2 | name "report" |
| 3 | description >- |
| 4 | Generate test report. Use when user says "test report", "results summary", |
| 5 | "test status", "show results", "test dashboard", or "how did tests go". |
| 6 | |
| 7 | |
| 8 | # Smart Test Reporting |
| 9 | |
| 10 | Generate test reports that plug into the user's existing workflow. Zero new tools. |
| 11 | |
| 12 | ## Steps |
| 13 | |
| 14 | ### 1. Run Tests (If Not Already Run) |
| 15 | |
| 16 | Check if recent test results exist: |
| 17 | |
| 18 | |
| 19 | ls -la test-results/ playwright-report/ 2>/dev/null |
| 20 | |
| 21 | |
| 22 | If no recent results, run tests: |
| 23 | |
| 24 | |
| 25 | npx playwright test --reporter=json,html,list 2>&1 | tee test-output.log |
| 26 | |
| 27 | |
| 28 | ### 2. Parse Results |
| 29 | |
| 30 | Read the JSON report: |
| 31 | |
| 32 | |
| 33 | npx playwright test --reporter=json 2> /dev/null |
| 34 | |
| 35 | |
| 36 | Extract: |
| 37 | Total tests, passed, failed, skipped, flaky |
| 38 | Duration per test and total |
| 39 | Failed test names with error messages |
| 40 | Flaky tests (passed on retry) |
| 41 | |
| 42 | ### 3. Detect Report Destination |
| 43 | |
| 44 | Check what's configured and route automatically: |
| 45 | |
| 46 | | Check | If found | Action | |
| 47 | |---|---|---| |
| 48 | | `TESTRAIL_URL` env var | TestRail configured | Push results via `/pw:testrail push` | |
| 49 | | `SLACK_WEBHOOK_URL` env var | Slack configured | Post summary to Slack | |
| 50 | | `.github/workflows/` | GitHub Actions | Results go to PR comment via artifacts | |
| 51 | | `playwright-report/` | HTML reporter | Open or serve the report | |
| 52 | | None of the above | Default | Generate markdown report | |
| 53 | |
| 54 | ### 4. Generate Report |
| 55 | |
| 56 | #### Markdown Report (Always Generated) |
| 57 | |
| 58 | |
| 59 | # Test Results — {{date}} |
| 60 | |
| 61 | ## Summary |
| 62 | - ✅ Passed: {{passed}} |
| 63 | - ❌ Failed: {{failed}} |
| 64 | - ⏭️ Skipped: {{skipped}} |
| 65 | - 🔄 Flaky: {{flaky}} |
| 66 | - ⏱️ Duration: {{duration}} |
| 67 | |
| 68 | ## Failed Tests |
| 69 | | Test | Error | File | |
| 70 | |---|---|---| |
| 71 | | {{name}} | {{error}} | {{file}}:{{line}} | |
| 72 | |
| 73 | ## Flaky Tests |
| 74 | | Test | Retries | File | |
| 75 | |---|---|---| |
| 76 | | {{name}} | {{retries}} | {{file}} | |
| 77 | |
| 78 | ## By Project |
| 79 | | Browser | Passed | Failed | Duration | |
| 80 | |---|---|---|---| |
| 81 | | Chromium | X | Y | Zs | |
| 82 | | Firefox | X | Y | Zs | |
| 83 | | WebKit | X | Y | Zs | |
| 84 | |
| 85 | |
| 86 | Save to `test-reports/{{date}}-report.md`. |
| 87 | |
| 88 | #### Slack Summary (If Webhook Configured) |
| 89 | |
| 90 | |
| 91 | curl -X POST "$SLACK_WEBHOOK_URL" \ |
| 92 | -H 'Content-Type: application/json' \ |
| 93 | -d '{ |
| 94 | "text": "🧪 Test Results: ✅ {{passed}} | ❌ {{failed}} | ⏱️ {{duration}}\n{{failed_details}}" |
| 95 | }' |
| 96 | |
| 97 | |
| 98 | #### TestRail Push (If Configured) |
| 99 | |
| 100 | Invoke `/pw:testrail push` with the JSON results. |
| 101 | |
| 102 | #### HTML Report |
| 103 | |
| 104 | |
| 105 | npx playwright show-report |
| 106 | |
| 107 | |
| 108 | Or if in CI: |
| 109 | |
| 110 | echo "HTML report available at: playwright-report/index.html" |
| 111 | |
| 112 | |
| 113 | ### 5. Trend Analysis (If Historical Data Exists) |
| 114 | |
| 115 | If previous reports exist in `test-reports/`: |
| 116 | Compare pass rate over time |
| 117 | Identify tests that became flaky recently |
| 118 | Highlight new failures vs. recurring failures |
| 119 | |
| 120 | ## Output |
| 121 | |
| 122 | Summary with pass/fail/skip/flaky counts |
| 123 | Failed test details with error messages |
| 124 | Report destination confirmation |
| 125 | Trend comparison (if historical data available) |
| 126 | Next action recommendation (fix failures or celebrate green) |
| 127 |
Discussion
/ar:ar-status — Experiment DashboardShow experiment dashboard with results, active loops, and progress. Use when the user runs /ar:ar-status or asks how an autoresearch experiment is going.Analytics dashboardTurn a LinkedIn Analytics export into an interactive dark-themed React dashboard plus a written strategic analysis with 5 data-backed content recommendations. Reads every sheet in the export, builds charts for engagement trend, follower growth, post performance scatter, day-of-week heatmap, and audience breakdown. Use this skill whenever the user says "analyse my linkedin", "linkedin analytics", "build my dashboard", "review my performance", or uploads a LinkedIn Analytics export file. Requires the user's LinkedIn Analytics export (xlsx) as input.Earnings Preview SkillGenerate a pre-earnings briefing for any stock using Yahoo Finance data. Use this skill whenever the user wants to prepare for an upcoming earnings report, understand what analysts expect, review a company's beat/miss track record, or get a quick overview before an earnings call. Triggers include: "earnings preview for AAPL", "what to expect from TSLA earnings", MSFT reports next week", "earnings preview", "pre-earnings analysis", what are analysts expecting for NVDA", "earnings estimates for", will GOOGL beat earnings", "earnings beat/miss history", upcoming earnings", "before earnings", "earnings setup", consensus estimates", "earnings whisper", "EPS expectations", what's the street expecting", "earnings season preview", any mention of preparing for or previewing an earnings report, or any request to understand expectations ahead of a company's earnings date. Always use this skill when the user mentions a ticker in context of upcoming earnings, even if they don't say "preview" explicitly.Path A — List-styleSave the results of an in-chat data-exploration session as a TL report. Triggers when the user wants to persist a channels / brands / videos (uploads) / sponsorships list or filtered set they've been working with — phrases like "save this as a report", "save the list", "turn this into a campaign", "persist this", "make a report from what you found", "save the result", "I want to come back to this".
Browse more free Claude skills or everything in Data & analytics.