testeiya 0.3.9 → 0.3.10

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 (176) hide show
  1. package/README.md +312 -27
  2. package/dist/prompt/index.js +6 -2
  3. package/dist/prompt/index.js.map +1 -1
  4. package/dist/prompt/print.js +8 -0
  5. package/dist/prompt/print.js.map +1 -1
  6. package/dist/prompt/system-prompt.js +14 -4
  7. package/dist/prompt/system-prompt.js.map +1 -1
  8. package/dist/prompt/testomatio.js +3 -3
  9. package/dist/prompt/tools.js +15 -7
  10. package/dist/prompt/tools.js.map +1 -1
  11. package/dist/src/args.js +147 -47
  12. package/dist/src/args.js.map +1 -1
  13. package/dist/src/cli.js +50 -14
  14. package/dist/src/cli.js.map +1 -1
  15. package/dist/src/doctor.js +186 -0
  16. package/dist/src/doctor.js.map +1 -0
  17. package/dist/src/env.js +29 -5
  18. package/dist/src/env.js.map +1 -1
  19. package/dist/src/mcp.js +3 -3
  20. package/dist/src/mcp.js.map +1 -1
  21. package/dist/src/model.js +15 -10
  22. package/dist/src/model.js.map +1 -1
  23. package/dist/src/models.js +38 -0
  24. package/dist/src/models.js.map +1 -0
  25. package/dist/src/output.js +185 -0
  26. package/dist/src/output.js.map +1 -0
  27. package/dist/src/run.js +116 -24
  28. package/dist/src/run.js.map +1 -1
  29. package/dist/src/session.js +38 -23
  30. package/dist/src/session.js.map +1 -1
  31. package/dist/src/sessions.js +61 -0
  32. package/dist/src/sessions.js.map +1 -0
  33. package/package.json +7 -3
  34. package/prompt/index.ts +11 -2
  35. package/prompt/print.ts +9 -0
  36. package/prompt/system-prompt.ts +18 -4
  37. package/prompt/testomatio.ts +3 -3
  38. package/prompt/tools.ts +15 -7
  39. package/skills/codeceptjs/ci-fix-tests/SKILL.md +119 -0
  40. package/skills/codeceptjs/codeceptjs-auth/SKILL.md +141 -0
  41. package/skills/codeceptjs/codeceptjs-exploration/SKILL.md +100 -0
  42. package/skills/codeceptjs/codeceptjs-fundamentals/SKILL.md +196 -0
  43. package/skills/codeceptjs/codeceptjs-run-analysis/SKILL.md +83 -0
  44. package/skills/codeceptjs/debugging-codeceptjs-tests/SKILL.md +126 -0
  45. package/skills/codeceptjs/migrate-codeceptjs-4/SKILL.md +109 -0
  46. package/skills/codeceptjs/migrate-cypress-to-codeceptjs/SKILL.md +295 -0
  47. package/skills/codeceptjs/migrate-protractor-to-codeceptjs/SKILL.md +339 -0
  48. package/skills/codeceptjs/migrate-selenium-java-to-codeceptjs/SKILL.md +459 -0
  49. package/skills/codeceptjs/migrate-testcafe-to-codeceptjs/SKILL.md +338 -0
  50. package/skills/codeceptjs/refactoring-codeceptjs-tests/SKILL.md +78 -0
  51. package/skills/codeceptjs/writing-codeceptjs-tests/SKILL.md +102 -0
  52. package/skills/playwright/playwright-best-practices/SKILL.md +303 -0
  53. package/skills/playwright/playwright-best-practices/advanced/authentication-flows.md +360 -0
  54. package/skills/playwright/playwright-best-practices/advanced/authentication.md +871 -0
  55. package/skills/playwright/playwright-best-practices/advanced/clock-mocking.md +364 -0
  56. package/skills/playwright/playwright-best-practices/advanced/mobile-testing.md +409 -0
  57. package/skills/playwright/playwright-best-practices/advanced/multi-context.md +288 -0
  58. package/skills/playwright/playwright-best-practices/advanced/multi-user.md +393 -0
  59. package/skills/playwright/playwright-best-practices/advanced/network-advanced.md +452 -0
  60. package/skills/playwright/playwright-best-practices/advanced/third-party.md +464 -0
  61. package/skills/playwright/playwright-best-practices/architecture/pom-vs-fixtures.md +363 -0
  62. package/skills/playwright/playwright-best-practices/architecture/test-architecture.md +369 -0
  63. package/skills/playwright/playwright-best-practices/architecture/when-to-mock.md +383 -0
  64. package/skills/playwright/playwright-best-practices/browser-apis/browser-apis.md +391 -0
  65. package/skills/playwright/playwright-best-practices/browser-apis/iframes.md +403 -0
  66. package/skills/playwright/playwright-best-practices/browser-apis/service-workers.md +504 -0
  67. package/skills/playwright/playwright-best-practices/browser-apis/websockets.md +403 -0
  68. package/skills/playwright/playwright-best-practices/core/annotations.md +424 -0
  69. package/skills/playwright/playwright-best-practices/core/assertions-waiting.md +361 -0
  70. package/skills/playwright/playwright-best-practices/core/configuration.md +452 -0
  71. package/skills/playwright/playwright-best-practices/core/fixtures-hooks.md +417 -0
  72. package/skills/playwright/playwright-best-practices/core/global-setup.md +434 -0
  73. package/skills/playwright/playwright-best-practices/core/locators.md +242 -0
  74. package/skills/playwright/playwright-best-practices/core/page-object-model.md +315 -0
  75. package/skills/playwright/playwright-best-practices/core/projects-dependencies.md +453 -0
  76. package/skills/playwright/playwright-best-practices/core/test-data.md +492 -0
  77. package/skills/playwright/playwright-best-practices/core/test-suite-structure.md +361 -0
  78. package/skills/playwright/playwright-best-practices/core/test-tags.md +298 -0
  79. package/skills/playwright/playwright-best-practices/debugging/console-errors.md +420 -0
  80. package/skills/playwright/playwright-best-practices/debugging/debugging.md +504 -0
  81. package/skills/playwright/playwright-best-practices/debugging/error-testing.md +360 -0
  82. package/skills/playwright/playwright-best-practices/debugging/flaky-tests.md +496 -0
  83. package/skills/playwright/playwright-best-practices/frameworks/angular.md +530 -0
  84. package/skills/playwright/playwright-best-practices/frameworks/nextjs.md +469 -0
  85. package/skills/playwright/playwright-best-practices/frameworks/react.md +531 -0
  86. package/skills/playwright/playwright-best-practices/frameworks/vue.md +574 -0
  87. package/skills/playwright/playwright-best-practices/infrastructure-ci-cd/ci-cd.md +468 -0
  88. package/skills/playwright/playwright-best-practices/infrastructure-ci-cd/docker.md +283 -0
  89. package/skills/playwright/playwright-best-practices/infrastructure-ci-cd/github-actions.md +546 -0
  90. package/skills/playwright/playwright-best-practices/infrastructure-ci-cd/gitlab.md +397 -0
  91. package/skills/playwright/playwright-best-practices/infrastructure-ci-cd/other-providers.md +521 -0
  92. package/skills/playwright/playwright-best-practices/infrastructure-ci-cd/parallel-sharding.md +371 -0
  93. package/skills/playwright/playwright-best-practices/infrastructure-ci-cd/performance.md +453 -0
  94. package/skills/playwright/playwright-best-practices/infrastructure-ci-cd/reporting.md +424 -0
  95. package/skills/playwright/playwright-best-practices/infrastructure-ci-cd/test-coverage.md +497 -0
  96. package/skills/playwright/playwright-best-practices/testing-patterns/accessibility.md +359 -0
  97. package/skills/playwright/playwright-best-practices/testing-patterns/api-testing.md +719 -0
  98. package/skills/playwright/playwright-best-practices/testing-patterns/browser-extensions.md +506 -0
  99. package/skills/playwright/playwright-best-practices/testing-patterns/canvas-webgl.md +493 -0
  100. package/skills/playwright/playwright-best-practices/testing-patterns/component-testing.md +500 -0
  101. package/skills/playwright/playwright-best-practices/testing-patterns/drag-drop.md +576 -0
  102. package/skills/playwright/playwright-best-practices/testing-patterns/electron.md +509 -0
  103. package/skills/playwright/playwright-best-practices/testing-patterns/file-operations.md +377 -0
  104. package/skills/playwright/playwright-best-practices/testing-patterns/file-upload-download.md +562 -0
  105. package/skills/playwright/playwright-best-practices/testing-patterns/forms-validation.md +561 -0
  106. package/skills/playwright/playwright-best-practices/testing-patterns/graphql-testing.md +331 -0
  107. package/skills/playwright/playwright-best-practices/testing-patterns/i18n.md +508 -0
  108. package/skills/playwright/playwright-best-practices/testing-patterns/performance-testing.md +476 -0
  109. package/skills/playwright/playwright-best-practices/testing-patterns/security-testing.md +430 -0
  110. package/skills/playwright/playwright-best-practices/testing-patterns/visual-regression.md +634 -0
  111. package/skills/playwright/playwright-cli/SKILL.md +420 -0
  112. package/skills/playwright/playwright-cli/references/element-attributes.md +23 -0
  113. package/skills/playwright/playwright-cli/references/playwright-tests.md +39 -0
  114. package/skills/playwright/playwright-cli/references/request-mocking.md +87 -0
  115. package/skills/playwright/playwright-cli/references/running-code.md +241 -0
  116. package/skills/playwright/playwright-cli/references/session-management.md +225 -0
  117. package/skills/playwright/playwright-cli/references/storage-state.md +275 -0
  118. package/skills/playwright/playwright-cli/references/test-generation.md +433 -0
  119. package/skills/playwright/playwright-cli/references/tracing.md +139 -0
  120. package/skills/playwright/playwright-cli/references/video-recording.md +143 -0
  121. package/skills/skills.lock.json +39 -36
  122. package/skills/testomatio/explorbot/explorbot-fundamentals/SKILL.md +76 -0
  123. package/skills/testomatio/explorbot/explorbot-fundamentals/references/no-install.md +36 -0
  124. package/skills/testomatio/explorbot/explorbot-plan/SKILL.md +108 -0
  125. package/skills/testomatio/explorbot/explorbot-setup/SKILL.md +86 -0
  126. package/skills/testomatio/qa-process/qa-explain-behavior/SKILL.md +111 -0
  127. package/skills/testomatio/qa-process/qa-explain-behavior/references/answer-shapes.md +116 -0
  128. package/skills/testomatio/qa-process/qa-explain-behavior/references/examples.md +157 -0
  129. package/skills/testomatio/qa-process/qa-lead-strategy-advisor/SKILL.md +91 -0
  130. package/skills/testomatio/qa-process/qa-lead-strategy-advisor/references/output-format.md +71 -0
  131. package/skills/testomatio/qa-process/testing-workflow/SKILL.md +227 -0
  132. package/skills/testomatio/test-automation/automate-manual-test-cases/CLAUDE.md +56 -0
  133. package/skills/testomatio/test-automation/automate-manual-test-cases/SKILL.md +242 -0
  134. package/skills/testomatio/test-automation/automate-manual-test-cases/references/CODECEPTJS_BEST_PRACTICES.md +182 -0
  135. package/skills/testomatio/test-automation/automate-manual-test-cases/references/FINAL_SUMMARY_TEMPLATE.md +22 -0
  136. package/skills/testomatio/test-automation/automate-manual-test-cases/references/PLAYWRIGHT_BEST_PRACTICES.md +90 -0
  137. package/skills/testomatio/test-automation/automate-manual-test-cases/references/POM_BEST_PRACTICES.md +53 -0
  138. package/skills/testomatio/test-automation/automate-manual-test-cases/references/TEST_DATA_MANAGEMENT.md +52 -0
  139. package/skills/testomatio/test-automation/debug-fix-failed-flaky-autotests/SKILL.md +107 -0
  140. package/skills/testomatio/test-automation/debug-fix-failed-flaky-autotests/references/DEBUGGING_QUICK_REFERENCE.md +113 -0
  141. package/skills/testomatio/test-automation/qa-automation-test-consolidation/SKILL.md +29 -0
  142. package/skills/testomatio/test-automation/qa-data-seeder/SKILL.md +83 -0
  143. package/skills/testomatio/test-automation/run-tests-with-testomatio-reporter/SKILL.md +153 -0
  144. package/skills/testomatio/test-automation/setup-change-aware-pr-testing/SKILL.md +190 -0
  145. package/skills/testomatio/test-automation/setup-ci-automation/SKILL.md +76 -0
  146. package/skills/testomatio/test-automation/testomat-allure-adapter/SKILL.md +289 -0
  147. package/skills/testomatio/test-management/detect-duplicate-test-cases/SKILL.md +86 -0
  148. package/skills/testomatio/test-management/detect-duplicate-test-cases/references/DUPLICATE_INSTRUCTIONS.md +54 -0
  149. package/skills/testomatio/test-management/improve-test-cases/SKILL.md +114 -0
  150. package/skills/testomatio/test-management/improve-test-cases/references/TESTOMAT_MARKDOWN_EXAMPLE.md +66 -0
  151. package/skills/testomatio/test-management/pull-request-diff-analyzer/SKILL.md +141 -0
  152. package/skills/testomatio/test-management/qa-e2e-tests-reporting/SKILL.md +354 -0
  153. package/skills/testomatio/test-management/qa-e2e-tests-reporting/references/TESTOMATIO_ARTIFACTS.md +82 -0
  154. package/skills/testomatio/test-management/qa-e2e-tests-reporting/references/TESTOMATIO_HTML_REPORT.md +37 -0
  155. package/skills/testomatio/test-management/qa-e2e-tests-reporting/references/TESTOMATIO_REPORTERS_CONFIG.md +118 -0
  156. package/skills/testomatio/test-management/qa-pr-requirements-analyzer/SKILL.md +149 -0
  157. package/skills/testomatio/test-management/qa-pr-requirements-analyzer/references/summary-example.md +54 -0
  158. package/skills/testomatio/test-management/qa-requirement-reviewer/SKILL.md +126 -0
  159. package/skills/testomatio/test-management/qa-requirement-reviewer/references/requirements_reviewer_examples.md +128 -0
  160. package/skills/testomatio/test-management/qa-split-testing-levels-pyramid/SKILL.md +55 -0
  161. package/skills/testomatio/test-management/qa-sprint-report-by-testomatio/SKILL.md +220 -0
  162. package/skills/testomatio/test-management/qa-sprint-report-by-testomatio/references/qa-sprint-report.md +126 -0
  163. package/skills/testomatio/test-management/qa-test-code-coverage/SKILL.md +174 -0
  164. package/skills/testomatio/test-management/qa-test-code-coverage/references/COVERAGE_FILE_FORMAT.md +138 -0
  165. package/skills/testomatio/test-management/qa-test-code-coverage/references/E2E_FRAMEWORKS.md +65 -0
  166. package/skills/testomatio/test-management/qa-test-code-coverage/scripts/check-coverage.mjs +40 -0
  167. package/skills/testomatio/test-management/qa-thinking/SKILL.md +36 -0
  168. package/skills/testomatio/test-management/qa-write-test-cases/SKILL.md +267 -0
  169. package/skills/testomatio/test-management/qa-write-test-cases/references/test-case-format.md +387 -0
  170. package/skills/testomatio/test-management/qa-write-test-cases/references/testomat-tms-guide.md +72 -0
  171. package/skills/testomatio/test-management/qa-write-test-cases/references/writing-rule.md +159 -0
  172. package/skills/testomatio/test-management/scan-automation-project/SKILL.md +152 -0
  173. package/skills/testomatio/test-management/sync-test-cases-with-tms/SKILL.md +107 -0
  174. package/skills/testomatio/test-management/sync-test-cases-with-tms/references/TESTOMATIO_CLI.md +140 -0
  175. package/skills/testomatio/test-management/testomatio-mcp/SKILL.md +195 -0
  176. package/skills/testomatio/test-management/testomatio-mcp/references/MCP_SETUP.md +177 -0
@@ -0,0 +1,141 @@
1
+ ---
2
+ name: pull-request-diff-analyzer
3
+ description: Analyze git diff/pull request changes to detect feature implementations and fixes, extract acceptance criteria, and identify related tickets. Use this skill when the user wants to understand what changed in a PR/branch, determine if it's a feature or bug fix, and get acceptance criteria for manual test case generation.
4
+ license: MIT
5
+ metadata:
6
+ author: Testomat.io
7
+ version: 1.0.0
8
+ ---
9
+
10
+ # Pull Request Diff Analyzer
11
+
12
+ Analyze a git diff or PR to detect the change type and extract acceptance criteria for manual testing. **Analysis only** — never modify code.
13
+
14
+ ## Step 1: Detect Branch Context and Scope
15
+
16
+ Get the current branch:
17
+
18
+ ```bash
19
+ git branch --show-current
20
+ ```
21
+
22
+ Detect the base branch, in order:
23
+
24
+ 1. From PR context (preferred). If a PR number is known:
25
+
26
+ ```bash
27
+ gh pr view {PR_NUMBER} --json baseRefName
28
+ ```
29
+
30
+ `baseRefName` in the response is the PR's base branch.
31
+
32
+ - If the base branch cannot be detected, ask the user to specify it.
33
+
34
+ Get changed files:
35
+
36
+ ```bash
37
+ git diff {BASE_BRANCH}...HEAD --name-only
38
+ ```
39
+
40
+ For uncommitted local changes only:
41
+
42
+ ```bash
43
+ git diff --name-only
44
+ ```
45
+
46
+ For a GitHub PR with full diff view:
47
+
48
+ ```bash
49
+ gh pr diff {PR_NUMBER}
50
+ ```
51
+
52
+ **Skip to Step 3 with a short summary only (no acceptance criteria)** if:
53
+ - Current branch is `master`, `main`, `stable`, or the detected default branch in `baseRefName`.
54
+ - No files changed.
55
+ - All changes are non-source-code updates:
56
+ - documentation/requirements (`*.md`, `docs/**`)
57
+ - test updates and test docs (`*.test.md`, `test-flows/**`, `tests/e2e`)
58
+ - CI/CD and infrastructure config (`.github/workflows/**`, `Jenkinsfile`)
59
+ - lint/formatter/tooling configs
60
+ - dependency version bumps without behavior changes
61
+ - No application/source code behavior changed.
62
+
63
+ **Proceed to Step 2** if source code changed (`src/**`, `lib/**`, `app/**`, or root `.ts`/`.js`/`.tsx`/`.jsx`/`.java`/`.py`/`.go`/`.rb`/`.php`/`.cs`/`.kt`/`.swift`/`.rs`, etc).
64
+
65
+ ## Step 2: Analyze PR Context and Files
66
+
67
+ Get PR details:
68
+
69
+ ```bash
70
+ gh pr view {PR_NUMBER} --json title,body,comments,reviews,issues
71
+ ```
72
+
73
+ Extract testing-relevant info:
74
+ - Title — feature/fix name, affected component.
75
+ - Description — criteria, test scenarios.
76
+ - Comments — test notes, edge cases, reproductions.
77
+
78
+ Analyze **source code files only**:
79
+ - Directories: `src/**`, `lib/**`, `app/**`, `controllers/**`, `services/**`, `models/**`, `pages/**`, `components/**`, `handlers/**`, `modules/**`, etc.
80
+ - Extensions: `.ts`, `.js`, `.tsx`, `.jsx`, `.java`, `.py`, `.go`, `.rb`, `.php`, `.cs`, `.kt`, `.swift`, `.rs`
81
+ - Skip configs, dependencies, tests, docs, migrations, and other files not related to source code.
82
+
83
+ Detect PR type:
84
+ - Feature — new files, endpoints, components, modules.
85
+ - Fix — bug fixes, patches, hotfixes (check commits for "fix", "bug", "hotfix").
86
+ - Refactor — code restructure without behavior change.
87
+
88
+ ### Optional: scan-automation-project
89
+
90
+ **Do not run `scan-automation-project` by default.** Run it only when extra project context adds clear value before writing acceptance criteria.
91
+
92
+ Run it if:
93
+ - The PR introduces new functionality or a significant feature change.
94
+ - You need to check whether similar manual tests already exist.
95
+ - The user explicitly asks ("check for duplicates", "what tests already exist", or similar).
96
+
97
+ Skip it if:
98
+ - The PR is a small fix or minor UI/component update.
99
+ - The diff already gives enough context to write ACs confidently.
100
+ - Changes are limited to docs, requirements, tests, configs, or non-source-code updates.
101
+ - The project does not appear to contain manual tests.
102
+ - Existing test inventory is not relevant for the requested task.
103
+
104
+ If it is unavailable:
105
+ - Continue without checking existing tests.
106
+ - Add this note to the AC output: `Manual test inventory not checked — verify existing tests manually if needed.`
107
+
108
+ Use scan results only to:
109
+ - Avoid duplicating existing manual test cases.
110
+ - Understand project structure, frameworks, and test organization.
111
+ - Improve relevance and consistency of generated acceptance criteria.
112
+
113
+ ## Step 3: Summary with Acceptance Criteria
114
+
115
+ Output format:
116
+
117
+ ```md
118
+ ## PR Diff Summary
119
+
120
+ **PR Type:** ... (feature | fix | refactor)
121
+ **Branch:** ... (branch name, e.g. feature/user-auth)
122
+ **Changes:** ... (one sentence describing the overall purpose of this PR)
123
+ **Affected Files:**
124
+ - ... (bullet list of all affected files in this PR)
125
+
126
+ **Impacted Areas:**
127
+ - ... (1-3 bullets, only real impacted files/areas in the PR)
128
+
129
+ **Acceptance Criteria:**
130
+ - action to perform → expected result
131
+ - ...
132
+ ```
133
+
134
+ Summary rules:
135
+ - Keep the summary concise and high-level.
136
+ - "Changes" is ONE sentence. Not a paragraph.
137
+ - "Impacted Areas" lists only meaningful business or technical impact.
138
+ - Omit empty sections instead of writing `None` or `N/A`.
139
+ - **Acceptance criteria MUST be testable and user-oriented.**
140
+ - Avoid generic statements like "code cleanup", "minor fixes", or "various improvements".
141
+ - Do NOT describe implementation details line-by-line.
@@ -0,0 +1,354 @@
1
+ ---
2
+ name: qa-e2e-tests-reporting
3
+ description: Install and configure Testomat.io reporting in a test automation project when a user needs to integrate their tests with Testomat.io. Detect the testing framework (e.g., Playwright, CodeceptJS, Jest, Mocha, WebdriverIO, JUnit, Pytest, XML, etc) and automatically set up the appropriate reporter so test results are sent to the Testomat.io TMS.
4
+ license: MIT
5
+ metadata:
6
+ author: Testomat.io
7
+ version: 1.0.0
8
+ ---
9
+
10
+ # Testomat.io Reporter Setup
11
+
12
+ Install and configure the Testomat.io reporter in an automation project, then push test results to the Testomat.io TMS.
13
+
14
+ ## Step 1: Detect Language & Framework
15
+
16
+ - Detect the language from the project manifest (`package.json`, `pyproject.toml`/`requirements.txt`, `pom.xml`/`build.gradle`, `*.csproj`, `composer.json`, `Gemfile`).
17
+ - Detect the framework from its config file: `playwright.config.*`, `codecept.conf.js`, `wdio.conf.*`, `jest.config.*`, `.mocharc.*`, `pytest.ini`/`conftest.py`, `*.robot`/`robot.toml`, `testng.xml`/JUnit deps in `pom.xml`.
18
+ - No native reporter for the stack (C#, PHP, Ruby, Go, etc.): use JUnit XML import (Step 4).
19
+
20
+ ## Step 2: Configure Credentials
21
+
22
+ - Check `.env` for a `TESTOMATIO` API key. If present, use it.
23
+ - If missing, add a placeholder line to `.env`:
24
+
25
+ ```env
26
+ TESTOMATIO=tstmt_xxxxx
27
+ ```
28
+
29
+ - **Ask the user to replace the placeholder with their "Project Reporting API key" themselves — never ask them to paste the key into chat.**
30
+
31
+ Message to the user:
32
+
33
+ ```
34
+ ✅ Added `TESTOMATIO=tstmt_xxxxx` placeholder to .env
35
+
36
+ To activate reporting:
37
+ 1. Go to Testomat.io → your project → Settings → Project
38
+ (https://app.testomat.io/projects/<project-id>/settings/project)
39
+ 2. Copy "Project Reporting API key"
40
+ 3. Replace `tstmt_xxxxx` in .env with your actual key
41
+ 4. Run tests: TESTOMATIO=tstmt_xxxxx npx <test-command>
42
+ ```
43
+
44
+ ## Step 3: Install & Configure Reporter
45
+
46
+ Pick the section for the detected language and framework.
47
+
48
+ ### JavaScript / TypeScript
49
+
50
+ Use `@testomatio/reporter`:
51
+
52
+ ```bash
53
+ npm install @testomatio/reporter --save-dev
54
+ ```
55
+
56
+ Playwright — `playwright.config.ts` or `playwright.config.js`:
57
+
58
+ ```js
59
+ reporter: [
60
+ ['@testomatio/reporter/playwright'],
61
+ // other reporters...
62
+ ],
63
+ ```
64
+
65
+ CodeceptJS — `codecept.conf.js` or `codecept.config.js`:
66
+
67
+ ```js
68
+ plugins: {
69
+ testomatio: {
70
+ enabled: true,
71
+ require: '@testomatio/reporter/codecept',
72
+ }
73
+ }
74
+ ```
75
+
76
+ WebdriverIO — `wdio.conf.js`:
77
+
78
+ ```js
79
+ import testomatio from '@testomatio/reporter/webdriver';
80
+
81
+ exports.config = {
82
+ // ...
83
+ reporters: [
84
+ [testomatio, { apiKey: process.env.TESTOMATIO }],
85
+ ],
86
+ };
87
+ ```
88
+
89
+ Jest — `jest.config.js` or `jest.config.ts`:
90
+
91
+ ```js
92
+ module.exports = {
93
+ reporters: ['default', ['@testomatio/reporter/jest', { apiKey: process.env.TESTOMATIO }]],
94
+ };
95
+ ```
96
+
97
+ Mocha — run with CLI flags:
98
+
99
+ ```bash
100
+ mocha --reporter @testomatio/reporter/mocha --reporter-options apiKey=tstmt_xxx
101
+ ```
102
+
103
+ - Run commands and more config options: [./references/TESTOMATIO_REPORTERS_CONFIG.md](./references/TESTOMATIO_REPORTERS_CONFIG.md)
104
+ - Docs: [Testomat.io NodeJS Frameworks](https://docs.testomat.io/test-reporting/frameworks/)
105
+
106
+ ### Python
107
+
108
+ Use `pytestomatio` for pytest, `robot-framework-reporter` for Robot Framework.
109
+
110
+ - Use `pip3` if Python 2.x and 3.x coexist.
111
+
112
+ pytest:
113
+
114
+ ```bash
115
+ pip install pytestomatio
116
+
117
+ # Run and report tests
118
+ pytest --testomatio report
119
+ ```
120
+
121
+ Robot Framework:
122
+
123
+ ```bash
124
+ pip install robot-framework-reporter
125
+
126
+ # Run and report tests
127
+ robot --listener Testomatio.Report path/to/tests
128
+ ```
129
+
130
+ Docs: [Testomat.io Python Reporting](https://docs.testomat.io/test-reporting/python/)
131
+
132
+ ### Java (JUnit, TestNG, Cucumber, Karate)
133
+
134
+ Use the `io.testomat` Java reporters.
135
+
136
+ - Ask the user to set the API key before running tests, then verify it is set and starts with `tstmt_`:
137
+
138
+ ```bash
139
+ export TESTOMATIO=<tstmt_api_key>
140
+ ```
141
+
142
+ - Add the dependency for the framework in use:
143
+
144
+ ```xml
145
+ <dependency>
146
+ <groupId>io.testomat</groupId>
147
+ <artifactId>java-reporter-junit</artifactId>
148
+ <version>{LATEST_STABLE_VERSION}</version>
149
+ </dependency>
150
+ ```
151
+
152
+ Artifact IDs: `java-reporter-junit`, `java-reporter-testng`, `java-reporter-cucumber`, `java-reporter-karate`.
153
+
154
+ - Run tests:
155
+
156
+ ```bash
157
+ mvn clean test
158
+ ```
159
+
160
+ - Scan the output for a run ID. If found, show the link:
161
+
162
+ ```
163
+ View results: https://app.testomat.io/projects/{project-id}/runs/{run-id}
164
+ ```
165
+
166
+ Docs: [Testomat.io Java/JUnit Reporting](https://docs.testomat.io/test-reporting/junit/)
167
+
168
+ ## Step 4: Import Automated Tests to Testomat.io TMS
169
+
170
+ Import test source code into Testomat.io to see test structure and enable codebase-TMS synchronization.
171
+
172
+ Docs: [Testomat.io Import Overview](https://docs.testomat.io/project/import-export/)
173
+
174
+ ### JavaScript / TypeScript
175
+
176
+ Use the `check-tests` CLI:
177
+
178
+ ```bash
179
+ npx check-tests@latest <framework> "<glob-pattern>" [options]
180
+ ```
181
+
182
+ | Framework | Example |
183
+ |-------------|---------|
184
+ | Playwright | `npx check-tests@latest Playwright "tests/**/*.spec.js"` |
185
+ | CodeceptJS | `npx check-tests@latest CodeceptJS "tests/**_test.js"` |
186
+ | Cypress | `npx check-tests@latest cypress "cypress/e2e/**/*.js"` |
187
+ | Jest | `npx check-tests@latest Jest "tests/**/*.test.js"` |
188
+ | Mocha | `npx check-tests@latest mocha "test/**/*_test.js"` |
189
+ | WebdriverIO | `npx check-tests@latest webdriverio "test/**/*.js"` |
190
+
191
+ Options:
192
+
193
+ - `--typescript` — for TypeScript projects: `npx check-tests@latest Playwright "tests/**/*.spec.ts" --typescript`
194
+ - `--update-ids` — sync and auto-assign test IDs in source code: `npx check-tests@latest CodeceptJS "tests/**_test.js" --update-ids`
195
+
196
+ ### Python
197
+
198
+ pytest — sync tests with Testomat.io:
199
+
200
+ ```bash
201
+ pytest --testomatio sync
202
+ ```
203
+
204
+ Robot Framework — import tests:
205
+
206
+ ```bash
207
+ robot --listener Testomatio.Import path/to/tests
208
+ ```
209
+
210
+ ### Java (JUnit, TestNG)
211
+
212
+ Use the `testomatio.jar` CLI. Re-run after every test execution.
213
+
214
+ - **Run only from the project root:**
215
+
216
+ ```bash
217
+ cd <project-root>
218
+
219
+ export TESTOMATIO=tstmt_xxxxx && \
220
+ curl -L -O https://github.com/testomatio/java-check-tests/releases/latest/download/testomatio.jar && \
221
+ java -jar testomatio.jar sync
222
+ ```
223
+
224
+ Commands:
225
+
226
+ - `import` — import test code to Testomat.io (dry-run without API key).
227
+ - `clean-ids` — import tests without system ids.
228
+ - `sync` — import tests and pull IDs into source code (alias: `update-ids`).
229
+
230
+ ### JUnit XML (C#, PHP, Ruby, Go, etc.)
231
+
232
+ For stacks without a native reporter, generate a JUnit XML report, then import it.
233
+
234
+ - NUnit (C#): `dotnet test --logger:"trx;LogFileName=results.xml"` — convert to JUnit XML if needed.
235
+ - PHPUnit (PHP): `./vendor/bin/phpunit --log-junit=results.xml`
236
+ - RSpec (Ruby): `rspec --format json --out results.json` — then convert to JUnit XML.
237
+
238
+ Import to Testomat.io:
239
+
240
+ ```bash
241
+ npx check-tests@latest junit "path/to/results.xml"
242
+
243
+ # Multiple XML files
244
+ npx check-tests@latest junit "results/*.xml"
245
+ ```
246
+
247
+ ## Step 5: Verify Setup
248
+
249
+ Run the tests with the reporter enabled:
250
+
251
+ ```bash
252
+ TESTOMATIO=tstmt_xxxxx npx <your-test-command>
253
+ ```
254
+
255
+ ### Via Testomat.io MCP (preferred, if enabled)
256
+
257
+ - After the run, fetch the latest run via MCP to confirm data was received.
258
+ - Success indicators: a new run ID appears in the logs; run status shows passed/failed as expected; the run is retrievable by its ID.
259
+ - Setup is complete when the new run is fetchable via MCP.
260
+ - MCP tools: [Testomat.io MCP Run Management](https://github.com/testomatio/mcp/blob/main/docs/tools.md#run-management)
261
+
262
+ ### Debug Mode (alternative)
263
+
264
+ - Capture reporter output locally **for only 1-2 tests** to verify data is generated correctly before sending:
265
+
266
+ ```bash
267
+ DEBUG=@testomatio/reporter:pipe:testomatio npx <your-test-command>
268
+ ```
269
+
270
+ - Read the execution logs to confirm the reporter is enabled and configured.
271
+ - Docs: [Testomat.io Debugging Logs](https://docs.testomat.io/not-in-use/debugging/)
272
+
273
+ ## Step 6: Configure Artifacts (only on explicit request)
274
+
275
+ Store screenshots, videos, traces, and logs in S3-compatible storage alongside test results.
276
+
277
+ - **Only perform this step if the user explicitly asks for artifacts configuration** (or mentions saving screenshots, videos, traces, logs).
278
+ - Prerequisite: first test report executed successfully.
279
+ - Check `.env` for existing S3 credentials (`S3_ACCESS_KEY_ID`, `S3_BUCKET`, `S3_REGION`). If present, skip to verification.
280
+
281
+ ### Create S3 Bucket (if needed)
282
+
283
+ - Recommended: one bucket per project.
284
+ - Guide the user through their provider, based on official documentation:
285
+
286
+ | Provider | Link |
287
+ |----------|------|
288
+ | AWS S3 | https://s3.console.aws.amazon.com/s3 |
289
+ | DigitalOcean | https://cloud.digitalocean.com/spaces |
290
+ | Google Cloud Storage | https://console.cloud.google.com/storage |
291
+ | Cloudflare R2 | https://dash.cloudflare.com/ |
292
+ | Minio | Self-hosted or cloud instance |
293
+
294
+ - The user obtains the Access Key ID and Secret Access Key from the provider.
295
+
296
+ ### Option A: Testomat.io UI (recommended)
297
+
298
+ - **The agent cannot access Testomat.io project settings — the user configures this manually:**
299
+ 1. Open `https://app.testomat.io/projects/<project-id>/settings/artifacts`
300
+ 2. Enable the "Share credentials" toggle.
301
+ 3. Enter Access Key ID, Secret Access Key, bucket name, region, and endpoint (endpoint only for non-AWS providers).
302
+
303
+ ### Option B: Environment Variables
304
+
305
+ Add S3 credentials to `.env` or the CI pipeline:
306
+
307
+ ```env
308
+ # Required for all providers
309
+ S3_ACCESS_KEY_ID=your_access_key
310
+ S3_SECRET_ACCESS_KEY=your_secret_key
311
+ S3_BUCKET=your_bucket_name
312
+ S3_REGION=us-west-1
313
+
314
+ # Optional: for non-AWS providers (DigitalOcean, Minio, Cloudflare R2, GCS)
315
+ S3_ENDPOINT=https://your-endpoint-url
316
+
317
+ # Optional: private access mode (recommended)
318
+ TESTOMATIO_PRIVATE_ARTIFACTS=1
319
+ ```
320
+
321
+ Cloudflare R2 example:
322
+
323
+ ```env
324
+ S3_ACCESS_KEY_ID=xxx
325
+ S3_SECRET_ACCESS_KEY=xxx
326
+ S3_BUCKET=testomatio-artifacts
327
+ S3_REGION=auto
328
+ S3_ENDPOINT=https://<account-id>.r2.cloudflarestorage.com
329
+ S3_FORCE_PATH_STYLE=true
330
+ ```
331
+
332
+ - Disable uploads: `TESTOMATIO_DISABLE_ARTIFACTS=1`
333
+ - Provider examples (AWS, DigitalOcean, Minio, GCS): [./references/TESTOMATIO_ARTIFACTS.md](./references/TESTOMATIO_ARTIFACTS.md)
334
+ - More options: [Testomat.io Artifacts](https://docs.testomat.io/test-reporting/artifacts/)
335
+
336
+ ### Verify Artifacts
337
+
338
+ - Run tests that produce screenshots, videos, or traces: `TESTOMATIO=tstmt_xxxxx npx <your-test-command>`
339
+ - Ask the user to open `https://app.testomat.io/projects/<project-id>/runs` and click a test with artifacts (failed tests typically have screenshots).
340
+ - Success: artifacts appear in the test results ("Artifacts" section or attachment icon) and are clickable; Playwright traces open in the trace viewer.
341
+
342
+ ## References
343
+
344
+ | Description | Link |
345
+ |-------------|------|
346
+ | Getting started | https://docs.testomat.io/getting-started/ |
347
+ | Reporter configuration | https://docs.testomat.io/test-reporting/frameworks/ |
348
+ | Framework config snippets | [./references/TESTOMATIO_REPORTERS_CONFIG.md](./references/TESTOMATIO_REPORTERS_CONFIG.md) |
349
+ | Python test reporting | https://docs.testomat.io/test-reporting/python/ |
350
+ | Python Robot Framework | https://github.com/testomatio/robot-framework-reporter/blob/master/README.md |
351
+ | Java/JUnit reporting | https://docs.testomat.io/test-reporting/junit/ |
352
+ | HTML pipe | [./references/TESTOMATIO_HTML_REPORT.md](./references/TESTOMATIO_HTML_REPORT.md) |
353
+ | Debug pipe | `TESTOMATIO_DEBUG=1 <test-command>` |
354
+ | Artifacts (S3) | [./references/TESTOMATIO_ARTIFACTS.md](./references/TESTOMATIO_ARTIFACTS.md) |
@@ -0,0 +1,82 @@
1
+ # Testomat.io Artifacts
2
+
3
+ Upload screenshots, videos, and traces for failed tests to S3-compatible storage.
4
+
5
+ ## Configuration
6
+
7
+ Set S3 credentials via environment variables:
8
+
9
+ | Variable | Description | Required |
10
+ |----------|-------------|----------|
11
+ | `S3_ACCESS_KEY_ID` | Access key | Yes |
12
+ | `S3_SECRET_ACCESS_KEY` | Secret key | Yes |
13
+ | `S3_BUCKET` | Bucket name | Yes |
14
+ | `S3_REGION` | Bucket region | Yes |
15
+ | `S3_ENDPOINT` | Custom S3 provider endpoint | For non-AWS |
16
+ | `S3_FORCE_PATH_STYLE` | Enable force path style | For Minio |
17
+ | `TESTOMATIO_PRIVATE_ARTIFACTS=1` | Private access mode | No (default: public) |
18
+
19
+ ## Providers
20
+
21
+ ### AWS
22
+
23
+ ```env
24
+ S3_ACCESS_KEY_ID=xxx
25
+ S3_SECRET_ACCESS_KEY=xxx
26
+ S3_BUCKET=xxx
27
+ S3_REGION=us-west-1
28
+ ```
29
+
30
+ ### DigitalOcean / Custom S3
31
+
32
+ ```env
33
+ S3_ENDPOINT=https://nyc3.digitaloceanspaces.com
34
+ S3_ACCESS_KEY_ID=xxx
35
+ S3_SECRET_ACCESS_KEY=xxx
36
+ S3_BUCKET=xxx
37
+ S3_REGION=xxx
38
+ ```
39
+
40
+ ### Minio
41
+
42
+ ```env
43
+ S3_ENDPOINT=http://localhost:9000
44
+ S3_ACCESS_KEY_ID=xxx
45
+ S3_SECRET_ACCESS_KEY=xxx
46
+ S3_BUCKET=xxx
47
+ S3_FORCE_PATH_STYLE=true
48
+ ```
49
+
50
+ ### Google Cloud Storage
51
+
52
+ Enable Interoperability mode in bucket settings, then use:
53
+
54
+ ```env
55
+ S3_ENDPOINT=xxx
56
+ S3_ACCESS_KEY_ID=xxx
57
+ S3_SECRET_ACCESS_KEY=xxx
58
+ S3_BUCKET=xxx
59
+ S3_REGION=xxx
60
+ ```
61
+
62
+ ## Supported Frameworks
63
+
64
+ Artifacts are automatically uploaded for:
65
+ - Playwright
66
+ - CodeceptJS
67
+ - Cypress
68
+ - WebdriverIO
69
+
70
+ ## Custom Artifacts
71
+
72
+ Add custom files to any test:
73
+
74
+ ```js
75
+ // Attach a local file
76
+ global.testomatioArtifacts.push('img/file.png');
77
+
78
+ // Attach with custom name
79
+ global.testomatioArtifacts.push({ name: 'Screenshot', path: 'img/file.png' });
80
+ ```
81
+
82
+ Artifacts are uploaded when the test finishes. If S3 is not configured, files are ignored.
@@ -0,0 +1,37 @@
1
+ # TESTOMATIO HTML Report
2
+
3
+ Generate standalone HTML/CSS reports for test results visualization.
4
+
5
+ ## Configuration
6
+
7
+ Set environment variables to enable and customize HTML reports:
8
+
9
+ | Variable | Description | Default |
10
+ |----------|-------------|---------|
11
+ | `TESTOMATIO_HTML_REPORT_SAVE=1` | Enable HTML report generation | - |
12
+ | `TESTOMATIO_HTML_REPORT_FOLDER` | Output folder for reports | `testomatio-reports/` |
13
+ | `TESTOMATIO_HTML_FILENAME` | Output filename (must include `.html`) | - |
14
+
15
+ ## Usage
16
+
17
+ **Generate report without sending data to Testomatio:**
18
+ ```bash
19
+ TESTOMATIO_HTML_REPORT_SAVE=1 npx codeceptjs run
20
+ ```
21
+
22
+ **Custom output location:**
23
+ ```bash
24
+ TESTOMATIO_HTML_REPORT_SAVE=1 TESTOMATIO_HTML_REPORT_FOLDER=user-html-reporter TESTOMATIO_HTML_FILENAME=custom.html npx codeceptjs run
25
+ ```
26
+
27
+ **Generate report and push results to TMS:**
28
+ ```bash
29
+ TESTOMATIO_HTML_REPORT_SAVE=1 TESTOMATIO=tstmt_xxx npx codeceptjs run
30
+ ```
31
+
32
+ ## Report Contents
33
+
34
+ - Run ID, status, and URL
35
+ - Parallel execution indication
36
+ - Execution time and date
37
+ - Test details with statistics and error info