testeiya 0.10.1 → 0.10.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (225) hide show
  1. package/README.md +7 -19
  2. package/dist/prompt/clis.d.ts +7 -0
  3. package/dist/prompt/pipeline-report.d.ts +1 -0
  4. package/dist/prompt/report.d.ts +10 -0
  5. package/dist/prompt/system-prompt.d.ts +22 -0
  6. package/dist/prompt/testomat.io.d.ts +19 -0
  7. package/dist/prompt/thread.d.ts +73 -0
  8. package/dist/src/args.d.ts +39 -0
  9. package/dist/src/attribution-extension.d.ts +3 -0
  10. package/dist/src/checkpoint.d.ts +30 -0
  11. package/dist/src/cli.d.ts +2 -0
  12. package/dist/src/cli.js +27 -32
  13. package/dist/src/cli.js.map +1 -1
  14. package/dist/src/doctor.d.ts +11 -0
  15. package/dist/src/env.d.ts +30 -0
  16. package/dist/src/exec.d.ts +11 -0
  17. package/dist/src/git.d.ts +41 -0
  18. package/dist/src/langfuse-extension.d.ts +7 -0
  19. package/dist/src/langfuse.d.ts +67 -0
  20. package/dist/src/mcp.d.ts +19 -0
  21. package/dist/src/model.d.ts +20 -0
  22. package/dist/src/models.d.ts +1 -0
  23. package/dist/src/output.d.ts +84 -0
  24. package/dist/src/pipeline/command-stage.d.ts +12 -0
  25. package/dist/src/pipeline/crash-guard.d.ts +12 -0
  26. package/dist/src/pipeline/crash-guard.js +21 -0
  27. package/dist/src/pipeline/crash-guard.js.map +1 -0
  28. package/dist/src/pipeline/diagram.d.ts +24 -0
  29. package/dist/src/pipeline/gate.d.ts +21 -0
  30. package/dist/src/pipeline/launcher.d.ts +33 -0
  31. package/dist/src/pipeline/launcher.js +16 -3
  32. package/dist/src/pipeline/launcher.js.map +1 -1
  33. package/dist/src/pipeline/log.d.ts +29 -0
  34. package/dist/src/pipeline/log.js +9 -0
  35. package/dist/src/pipeline/log.js.map +1 -1
  36. package/dist/src/pipeline/overlay.d.ts +29 -0
  37. package/dist/src/pipeline/pipeline-file.d.ts +44 -0
  38. package/dist/src/pipeline/pipeline.d.ts +78 -0
  39. package/dist/src/pipeline/pipeline.js +22 -0
  40. package/dist/src/pipeline/pipeline.js.map +1 -1
  41. package/dist/src/pipeline/report.d.ts +26 -0
  42. package/dist/src/pipeline/report.js +13 -0
  43. package/dist/src/pipeline/report.js.map +1 -1
  44. package/dist/src/pipeline/spec.d.ts +63 -0
  45. package/dist/src/pipeline/stage-env.d.ts +13 -0
  46. package/dist/src/pipeline/stage-env.js +31 -0
  47. package/dist/src/pipeline/stage-env.js.map +1 -0
  48. package/dist/src/pipeline/stage.d.ts +71 -0
  49. package/dist/src/pipeline/stage.js.map +1 -1
  50. package/dist/src/pipeline/state.d.ts +63 -0
  51. package/dist/src/pipeline/summary-stage.d.ts +24 -0
  52. package/dist/src/pipeline/task-stage.d.ts +24 -0
  53. package/dist/src/pipeline/task-stage.js +86 -2
  54. package/dist/src/pipeline/task-stage.js.map +1 -1
  55. package/dist/src/pipeline/variables.d.ts +20 -0
  56. package/dist/src/result.d.ts +6 -0
  57. package/dist/src/run.d.ts +69 -0
  58. package/dist/src/run.js +116 -60
  59. package/dist/src/run.js.map +1 -1
  60. package/dist/src/session.d.ts +43 -0
  61. package/dist/src/sessions.d.ts +23 -0
  62. package/dist/src/skills.d.ts +29 -0
  63. package/package.json +11 -2
  64. package/pipelines/api-testing.yml +1 -1
  65. package/scripts/vendor-skills.js +62 -0
  66. package/skills/codeceptjs/ci-fix-tests/SKILL.md +0 -119
  67. package/skills/codeceptjs/codeceptjs-auth/SKILL.md +0 -141
  68. package/skills/codeceptjs/codeceptjs-exploration/SKILL.md +0 -100
  69. package/skills/codeceptjs/codeceptjs-fundamentals/SKILL.md +0 -196
  70. package/skills/codeceptjs/codeceptjs-run-analysis/SKILL.md +0 -83
  71. package/skills/codeceptjs/debugging-codeceptjs-tests/SKILL.md +0 -126
  72. package/skills/codeceptjs/lint-codeceptjs-tests/SKILL.md +0 -104
  73. package/skills/codeceptjs/migrate-codeceptjs-4/SKILL.md +0 -109
  74. package/skills/codeceptjs/migrate-cypress-to-codeceptjs/SKILL.md +0 -295
  75. package/skills/codeceptjs/migrate-protractor-to-codeceptjs/SKILL.md +0 -339
  76. package/skills/codeceptjs/migrate-selenium-java-to-codeceptjs/SKILL.md +0 -459
  77. package/skills/codeceptjs/migrate-testcafe-to-codeceptjs/SKILL.md +0 -338
  78. package/skills/codeceptjs/refactoring-codeceptjs-tests/SKILL.md +0 -78
  79. package/skills/codeceptjs/writing-codeceptjs-tests/SKILL.md +0 -102
  80. package/skills/playwright/playwright-best-practices/SKILL.md +0 -303
  81. package/skills/playwright/playwright-best-practices/advanced/authentication-flows.md +0 -360
  82. package/skills/playwright/playwright-best-practices/advanced/authentication.md +0 -871
  83. package/skills/playwright/playwright-best-practices/advanced/clock-mocking.md +0 -364
  84. package/skills/playwright/playwright-best-practices/advanced/mobile-testing.md +0 -409
  85. package/skills/playwright/playwright-best-practices/advanced/multi-context.md +0 -288
  86. package/skills/playwright/playwright-best-practices/advanced/multi-user.md +0 -393
  87. package/skills/playwright/playwright-best-practices/advanced/network-advanced.md +0 -452
  88. package/skills/playwright/playwright-best-practices/advanced/third-party.md +0 -464
  89. package/skills/playwright/playwright-best-practices/architecture/pom-vs-fixtures.md +0 -363
  90. package/skills/playwright/playwright-best-practices/architecture/test-architecture.md +0 -369
  91. package/skills/playwright/playwright-best-practices/architecture/when-to-mock.md +0 -383
  92. package/skills/playwright/playwright-best-practices/browser-apis/browser-apis.md +0 -391
  93. package/skills/playwright/playwright-best-practices/browser-apis/iframes.md +0 -403
  94. package/skills/playwright/playwright-best-practices/browser-apis/service-workers.md +0 -504
  95. package/skills/playwright/playwright-best-practices/browser-apis/websockets.md +0 -403
  96. package/skills/playwright/playwright-best-practices/core/annotations.md +0 -424
  97. package/skills/playwright/playwright-best-practices/core/assertions-waiting.md +0 -361
  98. package/skills/playwright/playwright-best-practices/core/configuration.md +0 -452
  99. package/skills/playwright/playwright-best-practices/core/fixtures-hooks.md +0 -417
  100. package/skills/playwright/playwright-best-practices/core/global-setup.md +0 -434
  101. package/skills/playwright/playwright-best-practices/core/locators.md +0 -242
  102. package/skills/playwright/playwright-best-practices/core/page-object-model.md +0 -315
  103. package/skills/playwright/playwright-best-practices/core/projects-dependencies.md +0 -453
  104. package/skills/playwright/playwright-best-practices/core/test-data.md +0 -492
  105. package/skills/playwright/playwright-best-practices/core/test-suite-structure.md +0 -361
  106. package/skills/playwright/playwright-best-practices/core/test-tags.md +0 -298
  107. package/skills/playwright/playwright-best-practices/debugging/console-errors.md +0 -420
  108. package/skills/playwright/playwright-best-practices/debugging/debugging.md +0 -504
  109. package/skills/playwright/playwright-best-practices/debugging/error-testing.md +0 -360
  110. package/skills/playwright/playwright-best-practices/debugging/flaky-tests.md +0 -496
  111. package/skills/playwright/playwright-best-practices/frameworks/angular.md +0 -530
  112. package/skills/playwright/playwright-best-practices/frameworks/nextjs.md +0 -469
  113. package/skills/playwright/playwright-best-practices/frameworks/react.md +0 -531
  114. package/skills/playwright/playwright-best-practices/frameworks/vue.md +0 -574
  115. package/skills/playwright/playwright-best-practices/infrastructure-ci-cd/ci-cd.md +0 -468
  116. package/skills/playwright/playwright-best-practices/infrastructure-ci-cd/docker.md +0 -283
  117. package/skills/playwright/playwright-best-practices/infrastructure-ci-cd/github-actions.md +0 -546
  118. package/skills/playwright/playwright-best-practices/infrastructure-ci-cd/gitlab.md +0 -397
  119. package/skills/playwright/playwright-best-practices/infrastructure-ci-cd/other-providers.md +0 -521
  120. package/skills/playwright/playwright-best-practices/infrastructure-ci-cd/parallel-sharding.md +0 -371
  121. package/skills/playwright/playwright-best-practices/infrastructure-ci-cd/performance.md +0 -453
  122. package/skills/playwright/playwright-best-practices/infrastructure-ci-cd/reporting.md +0 -424
  123. package/skills/playwright/playwright-best-practices/infrastructure-ci-cd/test-coverage.md +0 -497
  124. package/skills/playwright/playwright-best-practices/testing-patterns/accessibility.md +0 -359
  125. package/skills/playwright/playwright-best-practices/testing-patterns/api-testing.md +0 -719
  126. package/skills/playwright/playwright-best-practices/testing-patterns/browser-extensions.md +0 -506
  127. package/skills/playwright/playwright-best-practices/testing-patterns/canvas-webgl.md +0 -493
  128. package/skills/playwright/playwright-best-practices/testing-patterns/component-testing.md +0 -500
  129. package/skills/playwright/playwright-best-practices/testing-patterns/drag-drop.md +0 -576
  130. package/skills/playwright/playwright-best-practices/testing-patterns/electron.md +0 -509
  131. package/skills/playwright/playwright-best-practices/testing-patterns/file-operations.md +0 -377
  132. package/skills/playwright/playwright-best-practices/testing-patterns/file-upload-download.md +0 -562
  133. package/skills/playwright/playwright-best-practices/testing-patterns/forms-validation.md +0 -561
  134. package/skills/playwright/playwright-best-practices/testing-patterns/graphql-testing.md +0 -331
  135. package/skills/playwright/playwright-best-practices/testing-patterns/i18n.md +0 -508
  136. package/skills/playwright/playwright-best-practices/testing-patterns/performance-testing.md +0 -476
  137. package/skills/playwright/playwright-best-practices/testing-patterns/security-testing.md +0 -430
  138. package/skills/playwright/playwright-best-practices/testing-patterns/visual-regression.md +0 -634
  139. package/skills/playwright/playwright-cli/SKILL.md +0 -489
  140. package/skills/playwright/playwright-cli/references/element-attributes.md +0 -23
  141. package/skills/playwright/playwright-cli/references/playwright-tests.md +0 -39
  142. package/skills/playwright/playwright-cli/references/pr-attachments.md +0 -60
  143. package/skills/playwright/playwright-cli/references/request-mocking.md +0 -87
  144. package/skills/playwright/playwright-cli/references/running-code.md +0 -245
  145. package/skills/playwright/playwright-cli/references/session-management.md +0 -227
  146. package/skills/playwright/playwright-cli/references/storage-state.md +0 -275
  147. package/skills/playwright/playwright-cli/references/test-generation.md +0 -433
  148. package/skills/playwright/playwright-cli/references/tracing.md +0 -139
  149. package/skills/playwright/playwright-cli/references/video-recording.md +0 -216
  150. package/skills/skills.lock.json +0 -89
  151. package/skills/skills.yaml +0 -35
  152. /package/skills/{testomatio/explorbot → explorbot}/explorbot-fundamentals/SKILL.md +0 -0
  153. /package/skills/{testomatio/explorbot → explorbot}/explorbot-fundamentals/references/no-install.md +0 -0
  154. /package/skills/{testomatio/explorbot → explorbot}/explorbot-plan/SKILL.md +0 -0
  155. /package/skills/{testomatio/explorbot → explorbot}/explorbot-setup/SKILL.md +0 -0
  156. /package/skills/{testomatio/explorbot → explorbot}/prima/SKILL.md +0 -0
  157. /package/skills/{testomatio/qa-process → qa-process}/qa-lead-strategy-advisor/SKILL.md +0 -0
  158. /package/skills/{testomatio/qa-process → qa-process}/qa-lead-strategy-advisor/references/output-format.md +0 -0
  159. /package/skills/{testomatio/qa-process → qa-process}/qa-review-pr/SKILL.md +0 -0
  160. /package/skills/{testomatio/qa-process → qa-process}/testing-workflow/SKILL.md +0 -0
  161. /package/skills/{testomatio/requirements → requirements}/catalog-features/SKILL.md +0 -0
  162. /package/skills/{testomatio/requirements → requirements}/catalog-features/references/layout.md +0 -0
  163. /package/skills/{testomatio/requirements → requirements}/detect-product-mismatches/SKILL.md +0 -0
  164. /package/skills/{testomatio/requirements → requirements}/detect-product-mismatches/references/features.md +0 -0
  165. /package/skills/{testomatio/requirements → requirements}/detect-product-mismatches/references/layout.md +0 -0
  166. /package/skills/{testomatio/requirements → requirements}/pull-request-diff-analyzer/SKILL.md +0 -0
  167. /package/skills/{testomatio/requirements → requirements}/qa-explain-behavior/SKILL.md +0 -0
  168. /package/skills/{testomatio/requirements → requirements}/qa-explain-behavior/references/answer-shapes.md +0 -0
  169. /package/skills/{testomatio/requirements → requirements}/qa-explain-behavior/references/examples.md +0 -0
  170. /package/skills/{testomatio/requirements → requirements}/qa-pr-requirements-analyzer/SKILL.md +0 -0
  171. /package/skills/{testomatio/requirements → requirements}/qa-pr-requirements-analyzer/references/summary-example.md +0 -0
  172. /package/skills/{testomatio/requirements → requirements}/qa-requirement-reviewer/SKILL.md +0 -0
  173. /package/skills/{testomatio/requirements → requirements}/qa-requirement-reviewer/references/requirements_reviewer_examples.md +0 -0
  174. /package/skills/{testomatio/requirements → requirements}/qa-thinking/SKILL.md +0 -0
  175. /package/skills/{testomatio/requirements → requirements}/wiki-from-code/SKILL.md +0 -0
  176. /package/skills/{testomatio/requirements → requirements}/wiki-from-code/references/behaviors.md +0 -0
  177. /package/skills/{testomatio/requirements → requirements}/wiki-from-code/references/layout.md +0 -0
  178. /package/skills/{testomatio/requirements → requirements}/write-user-story/SKILL.md +0 -0
  179. /package/skills/{testomatio/test-automation → test-automation}/automate-manual-test-cases/CLAUDE.md +0 -0
  180. /package/skills/{testomatio/test-automation → test-automation}/automate-manual-test-cases/SKILL.md +0 -0
  181. /package/skills/{testomatio/test-automation → test-automation}/automate-manual-test-cases/references/CODECEPTJS_BEST_PRACTICES.md +0 -0
  182. /package/skills/{testomatio/test-automation → test-automation}/automate-manual-test-cases/references/FINAL_SUMMARY_TEMPLATE.md +0 -0
  183. /package/skills/{testomatio/test-automation → test-automation}/automate-manual-test-cases/references/PLAYWRIGHT_BEST_PRACTICES.md +0 -0
  184. /package/skills/{testomatio/test-automation → test-automation}/automate-manual-test-cases/references/POM_BEST_PRACTICES.md +0 -0
  185. /package/skills/{testomatio/test-automation → test-automation}/automate-manual-test-cases/references/TEST_DATA_MANAGEMENT.md +0 -0
  186. /package/skills/{testomatio/test-automation → test-automation}/debug-fix-failed-flaky-autotests/SKILL.md +0 -0
  187. /package/skills/{testomatio/test-automation → test-automation}/debug-fix-failed-flaky-autotests/references/DEBUGGING_QUICK_REFERENCE.md +0 -0
  188. /package/skills/{testomatio/test-automation → test-automation}/epic-requirements-specification/SKILL.md +0 -0
  189. /package/skills/{testomatio/test-automation → test-automation}/qa-automation-test-consolidation/SKILL.md +0 -0
  190. /package/skills/{testomatio/test-automation → test-automation}/qa-data-seeder/SKILL.md +0 -0
  191. /package/skills/{testomatio/test-automation → test-automation}/run-tests-with-testomatio-reporter/SKILL.md +0 -0
  192. /package/skills/{testomatio/test-automation → test-automation}/setup-change-aware-pr-testing/SKILL.md +0 -0
  193. /package/skills/{testomatio/test-automation → test-automation}/setup-ci-automation/SKILL.md +0 -0
  194. /package/skills/{testomatio/test-automation → test-automation}/testomat-allure-adapter/SKILL.md +0 -0
  195. /package/skills/{testomatio/test-management → test-management}/detect-duplicate-test-cases/SKILL.md +0 -0
  196. /package/skills/{testomatio/test-management → test-management}/detect-duplicate-test-cases/references/DUPLICATE_INSTRUCTIONS.md +0 -0
  197. /package/skills/{testomatio/test-management → test-management}/detect-useless-tests/SKILL.md +0 -0
  198. /package/skills/{testomatio/test-management → test-management}/improve-test-cases/SKILL.md +0 -0
  199. /package/skills/{testomatio/test-management → test-management}/improve-test-cases/references/TESTOMAT_MARKDOWN_EXAMPLE.md +0 -0
  200. /package/skills/{testomatio/test-management → test-management}/migrate-to-testomatio/SKILL.md +0 -0
  201. /package/skills/{testomatio/test-management → test-management}/migrate-to-testomatio/references/CSV_MIGRATION.md +0 -0
  202. /package/skills/{testomatio/test-management → test-management}/migrate-to-testomatio/references/CUSTOM_MIGRATION.md +0 -0
  203. /package/skills/{testomatio/test-management → test-management}/migrate-to-testomatio/references/TESTMO_MIGRATION.md +0 -0
  204. /package/skills/{testomatio/test-management → test-management}/migrate-to-testomatio/references/TESTRAIL_MIGRATION.md +0 -0
  205. /package/skills/{testomatio/test-management → test-management}/migrate-to-testomatio/references/XRAY_MIGRATION.md +0 -0
  206. /package/skills/{testomatio/test-management → test-management}/qa-e2e-tests-reporting/SKILL.md +0 -0
  207. /package/skills/{testomatio/test-management → test-management}/qa-e2e-tests-reporting/references/TESTOMATIO_ARTIFACTS.md +0 -0
  208. /package/skills/{testomatio/test-management → test-management}/qa-e2e-tests-reporting/references/TESTOMATIO_HTML_REPORT.md +0 -0
  209. /package/skills/{testomatio/test-management → test-management}/qa-e2e-tests-reporting/references/TESTOMATIO_REPORTERS_CONFIG.md +0 -0
  210. /package/skills/{testomatio/test-management → test-management}/qa-split-testing-levels-pyramid/SKILL.md +0 -0
  211. /package/skills/{testomatio/test-management → test-management}/qa-sprint-report-by-testomatio/SKILL.md +0 -0
  212. /package/skills/{testomatio/test-management → test-management}/qa-sprint-report-by-testomatio/references/qa-sprint-report.md +0 -0
  213. /package/skills/{testomatio/test-management → test-management}/qa-test-code-coverage/SKILL.md +0 -0
  214. /package/skills/{testomatio/test-management → test-management}/qa-test-code-coverage/references/COVERAGE_FILE_FORMAT.md +0 -0
  215. /package/skills/{testomatio/test-management → test-management}/qa-test-code-coverage/references/E2E_FRAMEWORKS.md +0 -0
  216. /package/skills/{testomatio/test-management → test-management}/qa-test-code-coverage/scripts/check-coverage.mjs +0 -0
  217. /package/skills/{testomatio/test-management → test-management}/qa-write-test-cases/SKILL.md +0 -0
  218. /package/skills/{testomatio/test-management → test-management}/qa-write-test-cases/references/test-case-format.md +0 -0
  219. /package/skills/{testomatio/test-management → test-management}/qa-write-test-cases/references/testomat-tms-guide.md +0 -0
  220. /package/skills/{testomatio/test-management → test-management}/qa-write-test-cases/references/writing-rule.md +0 -0
  221. /package/skills/{testomatio/test-management → test-management}/scan-automation-project/SKILL.md +0 -0
  222. /package/skills/{testomatio/test-management → test-management}/sync-test-cases-with-tms/SKILL.md +0 -0
  223. /package/skills/{testomatio/test-management → test-management}/sync-test-cases-with-tms/references/TESTOMATIO_CLI.md +0 -0
  224. /package/skills/{testomatio/test-management → test-management}/testomatio-mcp/SKILL.md +0 -0
  225. /package/skills/{testomatio/test-management → test-management}/testomatio-mcp/references/MCP_SETUP.md +0 -0
@@ -1,424 +0,0 @@
1
- # Test Reports & Artifacts
2
-
3
- ## Table of Contents
4
-
5
- 1. [CLI Commands](#cli-commands)
6
- 2. [Reporter Configuration](#reporter-configuration)
7
- 3. [Custom Reporter](#custom-reporter)
8
- 4. [Trace Configuration](#trace-configuration)
9
- 5. [Screenshot & Video Settings](#screenshot--video-settings)
10
- 6. [Artifact Directory Structure](#artifact-directory-structure)
11
- 7. [CI Artifact Upload](#ci-artifact-upload)
12
- 8. [Decision Guide](#decision-guide)
13
- 9. [Anti-Patterns](#anti-patterns)
14
- 10. [Troubleshooting](#troubleshooting)
15
-
16
- > **When to use**: Configuring test output for debugging, CI dashboards, and team visibility.
17
-
18
- ## CLI Commands
19
-
20
- ```bash
21
- # Display last HTML report
22
- npx playwright show-report
23
-
24
- # Specify reporter
25
- npx playwright test --reporter=html
26
- npx playwright test --reporter=dot # minimal CI output
27
- npx playwright test --reporter=line # one line per test
28
- npx playwright test --reporter=json # machine-readable
29
- npx playwright test --reporter=junit # CI integration
30
-
31
- # Combine reporters
32
- npx playwright test --reporter=dot,html
33
-
34
- # Merge sharded reports
35
- npx playwright merge-reports --reporter=html ./blob-report
36
- ```
37
-
38
- ## Reporter Configuration
39
-
40
- ### Environment-Based Setup
41
-
42
- ```typescript
43
- // playwright.config.ts
44
- import { defineConfig } from '@playwright/test';
45
-
46
- export default defineConfig({
47
- reporter: process.env.CI
48
- ? [
49
- ['dot'],
50
- ['html', { open: 'never' }],
51
- ['junit', { outputFile: 'results/junit.xml' }],
52
- ['github'],
53
- ]
54
- : [
55
- ['list'],
56
- ['html', { open: 'on-failure' }],
57
- ],
58
- });
59
- ```
60
-
61
- ### Reporter Types
62
-
63
- | Reporter | Output | Use Case |
64
- |---|---|---|
65
- | `list` | One line per test | Local development |
66
- | `line` | Single updating line | Local, less verbose |
67
- | `dot` | `.` pass, `F` fail | CI logs |
68
- | `html` | Interactive HTML page | Post-run analysis |
69
- | `json` | Machine-readable JSON | Custom tooling |
70
- | `junit` | JUnit XML | CI platforms |
71
- | `github` | PR annotations | GitHub Actions |
72
- | `blob` | Binary archive | Shard merging |
73
-
74
- ### JSON Output to File
75
-
76
- ```typescript
77
- import { defineConfig } from '@playwright/test';
78
-
79
- export default defineConfig({
80
- reporter: [
81
- ['json', { outputFile: 'results/output.json' }],
82
- ],
83
- });
84
- ```
85
-
86
- ### JUnit Customization
87
-
88
- ```typescript
89
- import { defineConfig } from '@playwright/test';
90
-
91
- export default defineConfig({
92
- reporter: [
93
- ['junit', {
94
- outputFile: 'results/junit.xml',
95
- stripANSIControlSequences: true,
96
- includeProjectInTestName: true,
97
- }],
98
- ],
99
- });
100
- ```
101
-
102
- ## Custom Reporter
103
-
104
- Build custom reporters for Slack notifications, database logging, or dashboards.
105
-
106
- ```typescript
107
- // reporters/notification-reporter.ts
108
- import type {
109
- FullResult,
110
- Reporter,
111
- TestCase,
112
- TestResult,
113
- } from '@playwright/test/reporter';
114
-
115
- class NotificationReporter implements Reporter {
116
- private passed = 0;
117
- private failed = 0;
118
- private skipped = 0;
119
- private failures: string[] = [];
120
-
121
- onTestEnd(test: TestCase, result: TestResult) {
122
- switch (result.status) {
123
- case 'passed':
124
- this.passed++;
125
- break;
126
- case 'failed':
127
- case 'timedOut':
128
- this.failed++;
129
- this.failures.push(`${test.title}: ${result.error?.message?.split('\n')[0]}`);
130
- break;
131
- case 'skipped':
132
- this.skipped++;
133
- break;
134
- }
135
- }
136
-
137
- async onEnd(result: FullResult) {
138
- const total = this.passed + this.failed + this.skipped;
139
- const status = this.failed > 0 ? 'FAILED' : 'PASSED';
140
- const message = [
141
- `Tests ${status}`,
142
- `Passed: ${this.passed} | Failed: ${this.failed} | Skipped: ${this.skipped}`,
143
- `Duration: ${(result.duration / 1000).toFixed(1)}s`,
144
- ];
145
-
146
- if (this.failures.length > 0) {
147
- message.push('', 'Failures:');
148
- this.failures.slice(0, 5).forEach((f) => message.push(` - ${f}`));
149
- if (this.failures.length > 5) {
150
- message.push(` ...and ${this.failures.length - 5} more`);
151
- }
152
- }
153
-
154
- const webhookUrl = process.env.NOTIFICATION_WEBHOOK;
155
- if (webhookUrl) {
156
- const controller = new AbortController();
157
- const timeout = setTimeout(() => controller.abort(), 5000);
158
- try {
159
- await fetch(webhookUrl, {
160
- method: 'POST',
161
- headers: { 'Content-Type': 'application/json' },
162
- body: JSON.stringify({ text: message.join('\n') }),
163
- signal: controller.signal,
164
- });
165
- } catch (error) {
166
- // Intentionally swallow notifier failures to avoid blocking test completion
167
- console.warn('Webhook notification failed:', error.message);
168
- } finally {
169
- clearTimeout(timeout);
170
- }
171
- }
172
- }
173
- }
174
-
175
- export default NotificationReporter;
176
- ```
177
-
178
- **Register custom reporter:**
179
-
180
- ```typescript
181
- import { defineConfig } from '@playwright/test';
182
-
183
- export default defineConfig({
184
- reporter: [
185
- ['dot'],
186
- ['html', { open: 'never' }],
187
- ['./reporters/notification-reporter.ts'],
188
- ],
189
- });
190
- ```
191
-
192
- ## Trace Configuration
193
-
194
- Traces capture actions, network requests, DOM snapshots, and console logs.
195
-
196
- ```typescript
197
- import { defineConfig } from '@playwright/test';
198
-
199
- export default defineConfig({
200
- retries: process.env.CI ? 2 : 0,
201
- use: {
202
- trace: 'on-first-retry',
203
- },
204
- });
205
- ```
206
-
207
- ### Trace Options
208
-
209
- | Value | Behavior | Overhead |
210
- |---|---|---|
211
- | `'off'` | Never records | None |
212
- | `'on'` | Every test | High |
213
- | `'on-first-retry'` | On first retry after failure | Minimal |
214
- | `'retain-on-failure'` | Records all, keeps failures | Medium |
215
- | `'retain-on-first-failure'` | Records all, keeps first failure | Medium |
216
-
217
- ### Viewing Traces
218
-
219
- ```bash
220
- # Local trace viewer
221
- npx playwright show-trace results/my-test/trace.zip
222
-
223
- # From HTML report (click Traces tab)
224
- npx playwright show-report
225
-
226
- # Online viewer: https://trace.playwright.dev
227
- ```
228
-
229
- ## Screenshot & Video Settings
230
-
231
- ```typescript
232
- import { defineConfig } from '@playwright/test';
233
-
234
- export default defineConfig({
235
- use: {
236
- screenshot: 'only-on-failure',
237
- video: 'retain-on-failure',
238
- },
239
- });
240
- ```
241
-
242
- ### Video with Custom Size
243
-
244
- ```typescript
245
- use: {
246
- video: {
247
- mode: 'retain-on-failure',
248
- size: { width: 1280, height: 720 },
249
- },
250
- },
251
- ```
252
-
253
- ### Screenshot Options
254
-
255
- | Value | Captures | Disk Cost |
256
- |---|---|---|
257
- | `'off'` | Never | None |
258
- | `'on'` | Every test | High |
259
- | `'only-on-failure'` | Failed tests | Low |
260
-
261
- ### Video Options
262
-
263
- | Value | Records | Keeps | Disk Cost |
264
- |---|---|---|---|
265
- | `'off'` | Never | — | None |
266
- | `'on'` | Every test | All | Very high |
267
- | `'on-first-retry'` | On retry | Retried | Low |
268
- | `'retain-on-failure'` | Every test | Failed | Medium |
269
-
270
- ## Artifact Directory Structure
271
-
272
- ```text
273
- test-results/
274
- ├── checkout-test-chromium/
275
- │ ├── trace.zip
276
- │ ├── test-failed-1.png
277
- │ └── video.webm
278
- ├── login-test-firefox/
279
- │ ├── trace.zip
280
- │ └── test-failed-1.png
281
- └── junit.xml
282
-
283
- playwright-report/
284
- ├── index.html
285
- └── data/
286
-
287
- blob-report/
288
- └── report-1.zip
289
- ```
290
-
291
- ## CI Artifact Upload
292
-
293
- ### GitHub Actions
294
-
295
- ```yaml
296
- - uses: actions/upload-artifact@v4
297
- if: ${{ !cancelled() }}
298
- with:
299
- name: playwright-report
300
- path: playwright-report/
301
- retention-days: 14
302
-
303
- - uses: actions/upload-artifact@v4
304
- if: failure()
305
- with:
306
- name: test-traces
307
- path: |
308
- test-results/**/trace.zip
309
- test-results/**/*.png
310
- test-results/**/*.webm
311
- retention-days: 7
312
- ```
313
-
314
- ## Decision Guide
315
-
316
- | Scenario | Reporter Configuration |
317
- |---|---|
318
- | Local development | `[['list'], ['html', { open: 'on-failure' }]]` |
319
- | GitHub Actions | `[['dot'], ['html'], ['github']]` |
320
- | GitLab CI | `[['dot'], ['html'], ['junit']]` |
321
- | Azure DevOps / Jenkins | `[['dot'], ['html'], ['junit']]` |
322
- | Sharded CI | `[['blob'], ['github']]` |
323
- | Custom dashboard | `[['json', { outputFile: '...' }]]` + custom reporter |
324
-
325
- | Artifact | When to Collect | Retention | Upload Condition |
326
- |---|---|---|---|
327
- | HTML report | Always | 14 days | `if: ${{ !cancelled() }}` |
328
- | Traces | On failure | 7 days | `if: failure()` |
329
- | Screenshots | On failure | 7 days | `if: failure()` |
330
- | Videos | On failure | 7 days | `if: failure()` |
331
- | JUnit XML | Always | 14 days | `if: ${{ !cancelled() }}` |
332
- | Blob report | Always (sharded) | 1 day | `if: ${{ !cancelled() }}` |
333
-
334
- ## Anti-Patterns
335
-
336
- | Anti-Pattern | Problem | Solution |
337
- |---|---|---|
338
- | No reporter configured | Default `list` only; no persistent report | Configure `html` + CI reporter |
339
- | `trace: 'on'` in CI | Massive artifacts, slow uploads | Use `trace: 'on-first-retry'` |
340
- | `video: 'on'` in CI | Enormous storage, slower tests | Use `video: 'retain-on-failure'` |
341
- | Upload artifacts only on failure | No report when tests pass | Upload with `if: ${{ !cancelled() }}` |
342
- | No retention limits | CI storage fills quickly | Set `retention-days: 7-14` |
343
- | Only `dot` reporter | Cannot drill into failures | Pair `dot` with `html` |
344
- | JUnit to stdout | Interferes with console output | Write to file |
345
- | Blocking `onEnd` in custom reporter | Slow HTTP calls delay pipeline | Use `Promise.race` with timeout |
346
-
347
- ## Troubleshooting
348
-
349
- ### Empty HTML Report
350
-
351
- Check reporter config. HTML report defaults to `playwright-report/`:
352
-
353
- ```typescript
354
- import { defineConfig } from '@playwright/test';
355
-
356
- export default defineConfig({
357
- reporter: [['html', { outputFolder: 'playwright-report', open: 'never' }]],
358
- });
359
- ```
360
-
361
- ### Traces Too Large
362
-
363
- Switch from `trace: 'on'` to `'on-first-retry'` with retries enabled:
364
-
365
- ```typescript
366
- import { defineConfig } from '@playwright/test';
367
-
368
- export default defineConfig({
369
- retries: process.env.CI ? 2 : 0,
370
- use: {
371
- trace: 'on-first-retry',
372
- },
373
- });
374
- ```
375
-
376
- ### JUnit XML Not Recognized
377
-
378
- Ensure path matches CI configuration:
379
-
380
- ```typescript
381
- reporter: [['junit', { outputFile: 'results/junit.xml' }]],
382
- ```
383
-
384
- ```yaml
385
- # GitHub Actions
386
- - uses: dorny/test-reporter@latest
387
- with:
388
- path: results/junit.xml
389
- reporter: java-junit
390
-
391
- # Azure DevOps
392
- - task: PublishTestResults@latest
393
- inputs:
394
- testResultsFiles: 'results/junit.xml'
395
-
396
- # Jenkins
397
- junit 'results/junit.xml'
398
- ```
399
-
400
- ### Empty Merged Report
401
-
402
- Use `blob` reporter for sharded runs (not `html`):
403
-
404
- ```typescript
405
- import { defineConfig } from '@playwright/test';
406
-
407
- export default defineConfig({
408
- reporter: process.env.CI
409
- ? [['blob'], ['dot']]
410
- : [['html', { open: 'on-failure' }]],
411
- });
412
- ```
413
-
414
- ### Missing Screenshots in Report
415
-
416
- Enable screenshots and keep both directories:
417
-
418
- ```typescript
419
- use: {
420
- screenshot: 'only-on-failure',
421
- },
422
- ```
423
-
424
- The HTML report embeds screenshots from `test-results/`. Deleting that directory removes screenshots from the report.