testeiya 0.2.0
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.
- package/README.md +212 -0
- package/models.catalog.json +6963 -0
- package/package.json +71 -0
- package/skills/codeceptjs/ci-fix-tests/SKILL.md +120 -0
- package/skills/codeceptjs/codeceptjs-auth/SKILL.md +158 -0
- package/skills/codeceptjs/codeceptjs-exploration/SKILL.md +91 -0
- package/skills/codeceptjs/codeceptjs-fundamentals/SKILL.md +158 -0
- package/skills/codeceptjs/codeceptjs-run-analysis/SKILL.md +90 -0
- package/skills/codeceptjs/debugging-codeceptjs-tests/SKILL.md +234 -0
- package/skills/codeceptjs/migrate-codeceptjs-4/SKILL.md +110 -0
- package/skills/codeceptjs/migrate-cypress-to-codeceptjs/SKILL.md +306 -0
- package/skills/codeceptjs/migrate-protractor-to-codeceptjs/SKILL.md +352 -0
- package/skills/codeceptjs/migrate-selenium-java-to-codeceptjs/SKILL.md +472 -0
- package/skills/codeceptjs/migrate-testcafe-to-codeceptjs/SKILL.md +350 -0
- package/skills/codeceptjs/refactoring-codeceptjs-tests/SKILL.md +81 -0
- package/skills/codeceptjs/writing-codeceptjs-tests/SKILL.md +206 -0
- package/skills/playwright-best-practices-skill/LICENSE.md +7 -0
- package/skills/playwright-best-practices-skill/README.md +147 -0
- package/skills/playwright-best-practices-skill/SKILL.md +303 -0
- package/skills/playwright-best-practices-skill/advanced/authentication-flows.md +360 -0
- package/skills/playwright-best-practices-skill/advanced/authentication.md +871 -0
- package/skills/playwright-best-practices-skill/advanced/clock-mocking.md +364 -0
- package/skills/playwright-best-practices-skill/advanced/mobile-testing.md +409 -0
- package/skills/playwright-best-practices-skill/advanced/multi-context.md +288 -0
- package/skills/playwright-best-practices-skill/advanced/multi-user.md +393 -0
- package/skills/playwright-best-practices-skill/advanced/network-advanced.md +452 -0
- package/skills/playwright-best-practices-skill/advanced/third-party.md +464 -0
- package/skills/playwright-best-practices-skill/architecture/pom-vs-fixtures.md +363 -0
- package/skills/playwright-best-practices-skill/architecture/test-architecture.md +369 -0
- package/skills/playwright-best-practices-skill/architecture/when-to-mock.md +383 -0
- package/skills/playwright-best-practices-skill/browser-apis/browser-apis.md +391 -0
- package/skills/playwright-best-practices-skill/browser-apis/iframes.md +403 -0
- package/skills/playwright-best-practices-skill/browser-apis/service-workers.md +504 -0
- package/skills/playwright-best-practices-skill/browser-apis/websockets.md +403 -0
- package/skills/playwright-best-practices-skill/core/annotations.md +424 -0
- package/skills/playwright-best-practices-skill/core/assertions-waiting.md +361 -0
- package/skills/playwright-best-practices-skill/core/configuration.md +452 -0
- package/skills/playwright-best-practices-skill/core/fixtures-hooks.md +417 -0
- package/skills/playwright-best-practices-skill/core/global-setup.md +434 -0
- package/skills/playwright-best-practices-skill/core/locators.md +242 -0
- package/skills/playwright-best-practices-skill/core/page-object-model.md +315 -0
- package/skills/playwright-best-practices-skill/core/projects-dependencies.md +453 -0
- package/skills/playwright-best-practices-skill/core/test-data.md +492 -0
- package/skills/playwright-best-practices-skill/core/test-suite-structure.md +361 -0
- package/skills/playwright-best-practices-skill/core/test-tags.md +298 -0
- package/skills/playwright-best-practices-skill/debugging/console-errors.md +420 -0
- package/skills/playwright-best-practices-skill/debugging/debugging.md +504 -0
- package/skills/playwright-best-practices-skill/debugging/error-testing.md +360 -0
- package/skills/playwright-best-practices-skill/debugging/flaky-tests.md +496 -0
- package/skills/playwright-best-practices-skill/frameworks/angular.md +530 -0
- package/skills/playwright-best-practices-skill/frameworks/nextjs.md +469 -0
- package/skills/playwright-best-practices-skill/frameworks/react.md +531 -0
- package/skills/playwright-best-practices-skill/frameworks/vue.md +574 -0
- package/skills/playwright-best-practices-skill/infrastructure-ci-cd/ci-cd.md +468 -0
- package/skills/playwright-best-practices-skill/infrastructure-ci-cd/docker.md +283 -0
- package/skills/playwright-best-practices-skill/infrastructure-ci-cd/github-actions.md +546 -0
- package/skills/playwright-best-practices-skill/infrastructure-ci-cd/gitlab.md +397 -0
- package/skills/playwright-best-practices-skill/infrastructure-ci-cd/other-providers.md +521 -0
- package/skills/playwright-best-practices-skill/infrastructure-ci-cd/parallel-sharding.md +371 -0
- package/skills/playwright-best-practices-skill/infrastructure-ci-cd/performance.md +453 -0
- package/skills/playwright-best-practices-skill/infrastructure-ci-cd/reporting.md +424 -0
- package/skills/playwright-best-practices-skill/infrastructure-ci-cd/test-coverage.md +497 -0
- package/skills/playwright-best-practices-skill/testing-patterns/accessibility.md +359 -0
- package/skills/playwright-best-practices-skill/testing-patterns/api-testing.md +719 -0
- package/skills/playwright-best-practices-skill/testing-patterns/browser-extensions.md +506 -0
- package/skills/playwright-best-practices-skill/testing-patterns/canvas-webgl.md +493 -0
- package/skills/playwright-best-practices-skill/testing-patterns/component-testing.md +500 -0
- package/skills/playwright-best-practices-skill/testing-patterns/drag-drop.md +576 -0
- package/skills/playwright-best-practices-skill/testing-patterns/electron.md +509 -0
- package/skills/playwright-best-practices-skill/testing-patterns/file-operations.md +377 -0
- package/skills/playwright-best-practices-skill/testing-patterns/file-upload-download.md +562 -0
- package/skills/playwright-best-practices-skill/testing-patterns/forms-validation.md +561 -0
- package/skills/playwright-best-practices-skill/testing-patterns/graphql-testing.md +331 -0
- package/skills/playwright-best-practices-skill/testing-patterns/i18n.md +508 -0
- package/skills/playwright-best-practices-skill/testing-patterns/performance-testing.md +476 -0
- package/skills/playwright-best-practices-skill/testing-patterns/security-testing.md +430 -0
- package/skills/playwright-best-practices-skill/testing-patterns/visual-regression.md +634 -0
- package/skills/playwright-cli/SKILL.md +420 -0
- package/skills/playwright-cli/references/element-attributes.md +23 -0
- package/skills/playwright-cli/references/playwright-tests.md +39 -0
- package/skills/playwright-cli/references/request-mocking.md +87 -0
- package/skills/playwright-cli/references/running-code.md +241 -0
- package/skills/playwright-cli/references/session-management.md +225 -0
- package/skills/playwright-cli/references/storage-state.md +275 -0
- package/skills/playwright-cli/references/test-generation.md +433 -0
- package/skills/playwright-cli/references/tracing.md +139 -0
- package/skills/playwright-cli/references/video-recording.md +143 -0
- package/skills/testeiya/README.md +29 -0
- package/skills/testeiya/answer-formatting/SKILL.md +30 -0
- package/skills/testeiya/check-cucumber/SKILL.md +200 -0
- package/skills/testeiya/check-tests/SKILL.md +260 -0
- package/skills/testeiya/manual-run-assistant/SKILL.md +61 -0
- package/skills/testeiya/testomatio-docs/INDEX.md +175 -0
- package/skills/testeiya/testomatio-docs/SKILL.md +102 -0
- package/skills/testeiya/testomatio-docs/docs/advanced/ai-powered-features/ai-agents.md +144 -0
- package/skills/testeiya/testomatio-docs/docs/advanced/ai-powered-features/ai-powered-features.md +531 -0
- package/skills/testeiya/testomatio-docs/docs/advanced/ai-powered-features/ai-requirements.md +437 -0
- package/skills/testeiya/testomatio-docs/docs/advanced/api-access/index.md +191 -0
- package/skills/testeiya/testomatio-docs/docs/advanced/branches-folder/index.md +277 -0
- package/skills/testeiya/testomatio-docs/docs/advanced/bulk-edit-folder/bulk-edit-demos.mdx +39 -0
- package/skills/testeiya/testomatio-docs/docs/advanced/bulk-edit-folder/bulk-edit-on-suite-and-test-level.md +122 -0
- package/skills/testeiya/testomatio-docs/docs/advanced/bulk-edit-folder/what-is-bulk-edit.md +170 -0
- package/skills/testeiya/testomatio-docs/docs/advanced/jira-plugin/branches.md +53 -0
- package/skills/testeiya/testomatio-docs/docs/advanced/jira-plugin/index.mdx +98 -0
- package/skills/testeiya/testomatio-docs/docs/advanced/jira-plugin/jira-issue.md +151 -0
- package/skills/testeiya/testomatio-docs/docs/advanced/jira-plugin/runs-and-reports.md +377 -0
- package/skills/testeiya/testomatio-docs/docs/advanced/jira-plugin/work-in-jira.md +267 -0
- package/skills/testeiya/testomatio-docs/docs/advanced/living-doc/index.md +138 -0
- package/skills/testeiya/testomatio-docs/docs/advanced/milestones/index.md +220 -0
- package/skills/testeiya/testomatio-docs/docs/advanced/shortcuts/index.md +48 -0
- package/skills/testeiya/testomatio-docs/docs/advanced/tags-labels/labels-and-custom-fields.md +201 -0
- package/skills/testeiya/testomatio-docs/docs/advanced/tags-labels/tags-or-labels.md +94 -0
- package/skills/testeiya/testomatio-docs/docs/advanced/tags-labels/tags.md +243 -0
- package/skills/testeiya/testomatio-docs/docs/advanced/test-artifacts/index.md +135 -0
- package/skills/testeiya/testomatio-docs/docs/advanced/tql/index.md +394 -0
- package/skills/testeiya/testomatio-docs/docs/getting-started/index.md +290 -0
- package/skills/testeiya/testomatio-docs/docs/integrations/continuous-integration/azure.md +96 -0
- package/skills/testeiya/testomatio-docs/docs/integrations/continuous-integration/bamboo.md +94 -0
- package/skills/testeiya/testomatio-docs/docs/integrations/continuous-integration/bitbucket.md +106 -0
- package/skills/testeiya/testomatio-docs/docs/integrations/continuous-integration/circle.md +115 -0
- package/skills/testeiya/testomatio-docs/docs/integrations/continuous-integration/github.md +120 -0
- package/skills/testeiya/testomatio-docs/docs/integrations/continuous-integration/gitlab.md +88 -0
- package/skills/testeiya/testomatio-docs/docs/integrations/continuous-integration/index.mdx +151 -0
- package/skills/testeiya/testomatio-docs/docs/integrations/continuous-integration/jenkins.md +121 -0
- package/skills/testeiya/testomatio-docs/docs/integrations/continuous-integration/teamcity.md +96 -0
- package/skills/testeiya/testomatio-docs/docs/integrations/issues-management/azure.md +31 -0
- package/skills/testeiya/testomatio-docs/docs/integrations/issues-management/clickup.md +54 -0
- package/skills/testeiya/testomatio-docs/docs/integrations/issues-management/confluence.md +34 -0
- package/skills/testeiya/testomatio-docs/docs/integrations/issues-management/github.md +31 -0
- package/skills/testeiya/testomatio-docs/docs/integrations/issues-management/gitlab.md +93 -0
- package/skills/testeiya/testomatio-docs/docs/integrations/issues-management/index.md +131 -0
- package/skills/testeiya/testomatio-docs/docs/integrations/issues-management/jira.md +164 -0
- package/skills/testeiya/testomatio-docs/docs/integrations/issues-management/linear.md +29 -0
- package/skills/testeiya/testomatio-docs/docs/integrations/issues-management/shortcut.md +67 -0
- package/skills/testeiya/testomatio-docs/docs/integrations/issues-management/youtrack.md +94 -0
- package/skills/testeiya/testomatio-docs/docs/integrations/report-notifications/azure-devops.md +53 -0
- package/skills/testeiya/testomatio-docs/docs/integrations/report-notifications/email.md +71 -0
- package/skills/testeiya/testomatio-docs/docs/integrations/report-notifications/jira.md +52 -0
- package/skills/testeiya/testomatio-docs/docs/integrations/report-notifications/ms-teams.md +60 -0
- package/skills/testeiya/testomatio-docs/docs/integrations/report-notifications/rules.md +267 -0
- package/skills/testeiya/testomatio-docs/docs/integrations/report-notifications/slack.md +82 -0
- package/skills/testeiya/testomatio-docs/docs/integrations/report-notifications/telegram.md +73 -0
- package/skills/testeiya/testomatio-docs/docs/integrations/scim-provisioning/index.mdx +207 -0
- package/skills/testeiya/testomatio-docs/docs/integrations/scim-provisioning/okta.md +204 -0
- package/skills/testeiya/testomatio-docs/docs/integrations/single-sign-on/azure.md +95 -0
- package/skills/testeiya/testomatio-docs/docs/integrations/single-sign-on/google.md +75 -0
- package/skills/testeiya/testomatio-docs/docs/integrations/single-sign-on/index.mdx +33 -0
- package/skills/testeiya/testomatio-docs/docs/integrations/single-sign-on/okta.md +108 -0
- package/skills/testeiya/testomatio-docs/docs/integrations/single-sign-on/saml.md +66 -0
- package/skills/testeiya/testomatio-docs/docs/legal/compliance/gdpr.md +95 -0
- package/skills/testeiya/testomatio-docs/docs/legal/compliance/index.mdx +94 -0
- package/skills/testeiya/testomatio-docs/docs/legal/compliance/privacy.md +26 -0
- package/skills/testeiya/testomatio-docs/docs/legal/compliance/terms.md +32 -0
- package/skills/testeiya/testomatio-docs/docs/legal/security/index.mdx +242 -0
- package/skills/testeiya/testomatio-docs/docs/legal/security/jira.md +140 -0
- package/skills/testeiya/testomatio-docs/docs/legal/security/subprocessors.md +76 -0
- package/skills/testeiya/testomatio-docs/docs/management/company/administration.md +363 -0
- package/skills/testeiya/testomatio-docs/docs/management/company/audit-log.md +41 -0
- package/skills/testeiya/testomatio-docs/docs/management/company/plan-features-comparison.md +240 -0
- package/skills/testeiya/testomatio-docs/docs/management/company/subscriptions.md +326 -0
- package/skills/testeiya/testomatio-docs/docs/management/company/trials.md +75 -0
- package/skills/testeiya/testomatio-docs/docs/management/company/users-and-permissions/accountant.md +49 -0
- package/skills/testeiya/testomatio-docs/docs/management/company/users-and-permissions/index.mdx +285 -0
- package/skills/testeiya/testomatio-docs/docs/management/company/users-and-permissions/read-only-user.md +67 -0
- package/skills/testeiya/testomatio-docs/docs/management/company/users-and-permissions/teams.md +138 -0
- package/skills/testeiya/testomatio-docs/docs/management/project/settings.md +87 -0
- package/skills/testeiya/testomatio-docs/docs/management/project/templates.md +546 -0
- package/skills/testeiya/testomatio-docs/docs/project/analytics/index.md +326 -0
- package/skills/testeiya/testomatio-docs/docs/project/import-export/export-tests/classical-tests-markdown-format.md +386 -0
- package/skills/testeiya/testomatio-docs/docs/project/import-export/export-tests/download-manual-tests-as-files.md +378 -0
- package/skills/testeiya/testomatio-docs/docs/project/import-export/export-tests/export-to-obsidian.md +112 -0
- package/skills/testeiya/testomatio-docs/docs/project/import-export/export-tests/export-to-spreadsheet.md +127 -0
- package/skills/testeiya/testomatio-docs/docs/project/import-export/import/auto-import.md +63 -0
- package/skills/testeiya/testomatio-docs/docs/project/import-export/import/import-tests-from-Allure-TestOps.md +49 -0
- package/skills/testeiya/testomatio-docs/docs/project/import-export/import/import-tests-from-QTest.md +41 -0
- package/skills/testeiya/testomatio-docs/docs/project/import-export/import/import-tests-from-Qase.md +39 -0
- package/skills/testeiya/testomatio-docs/docs/project/import-export/import/import-tests-from-Zephyr.md +37 -0
- package/skills/testeiya/testomatio-docs/docs/project/import-export/import/import-tests-from-csv-xlsx.md +117 -0
- package/skills/testeiya/testomatio-docs/docs/project/import-export/import/import-tests-from-cucumber.md +93 -0
- package/skills/testeiya/testomatio-docs/docs/project/import-export/import/import-tests-from-qmetry.md +44 -0
- package/skills/testeiya/testomatio-docs/docs/project/import-export/import/import-tests-from-source-code.md +117 -0
- package/skills/testeiya/testomatio-docs/docs/project/import-export/import/import-tests-from-testcaselabs.md +44 -0
- package/skills/testeiya/testomatio-docs/docs/project/import-export/import/import-tests-from-testmo.md +47 -0
- package/skills/testeiya/testomatio-docs/docs/project/import-export/import/import-tests-from-testrail.md +82 -0
- package/skills/testeiya/testomatio-docs/docs/project/import-export/import/import-tests-from-xray.md +55 -0
- package/skills/testeiya/testomatio-docs/docs/project/plans/index.md +334 -0
- package/skills/testeiya/testomatio-docs/docs/project/pulse/index.md +104 -0
- package/skills/testeiya/testomatio-docs/docs/project/runs/archive-runs-and-groups.md +176 -0
- package/skills/testeiya/testomatio-docs/docs/project/runs/custom-statuses.md +195 -0
- package/skills/testeiya/testomatio-docs/docs/project/runs/environments.md +203 -0
- package/skills/testeiya/testomatio-docs/docs/project/runs/managing-runs.md +455 -0
- package/skills/testeiya/testomatio-docs/docs/project/runs/merge-strategies.md +137 -0
- package/skills/testeiya/testomatio-docs/docs/project/runs/reports.md +329 -0
- package/skills/testeiya/testomatio-docs/docs/project/runs/rungroups.md +342 -0
- package/skills/testeiya/testomatio-docs/docs/project/runs/running-automated-tests.md +256 -0
- package/skills/testeiya/testomatio-docs/docs/project/runs/running-manual-and-automated-tests.md +331 -0
- package/skills/testeiya/testomatio-docs/docs/project/runs/running-tests-manually.md +633 -0
- package/skills/testeiya/testomatio-docs/docs/project/runs/temporary-tests-notes.md +223 -0
- package/skills/testeiya/testomatio-docs/docs/project/steps-snippets/snippets.md +68 -0
- package/skills/testeiya/testomatio-docs/docs/project/steps-snippets/steps.md +181 -0
- package/skills/testeiya/testomatio-docs/docs/project/tests/bdd-test-case-editor.md +98 -0
- package/skills/testeiya/testomatio-docs/docs/project/tests/classical-test-case-editor.md +354 -0
- package/skills/testeiya/testomatio-docs/docs/project/tests/classical-vs-bdd.md +169 -0
- package/skills/testeiya/testomatio-docs/docs/project/tests/copy-and-move-your-tests.md +156 -0
- package/skills/testeiya/testomatio-docs/docs/project/tests/other-features-for-test-case-design.md +412 -0
- package/skills/testeiya/testomatio-docs/docs/project/tests/test-case-creation-and-editing.md +527 -0
- package/skills/testeiya/testomatio-docs/docs/support/index.md +75 -0
- package/skills/testeiya/testomatio-docs/docs/test-reporting/artifacts.md +388 -0
- package/skills/testeiya/testomatio-docs/docs/test-reporting/cli.md +215 -0
- package/skills/testeiya/testomatio-docs/docs/test-reporting/configuration.md +247 -0
- package/skills/testeiya/testomatio-docs/docs/test-reporting/frameworks.md +490 -0
- package/skills/testeiya/testomatio-docs/docs/test-reporting/functions.md +144 -0
- package/skills/testeiya/testomatio-docs/docs/test-reporting/index.mdx +48 -0
- package/skills/testeiya/testomatio-docs/docs/test-reporting/junit.md +248 -0
- package/skills/testeiya/testomatio-docs/docs/test-reporting/logger.md +138 -0
- package/skills/testeiya/testomatio-docs/docs/test-reporting/php.md +77 -0
- package/skills/testeiya/testomatio-docs/docs/test-reporting/pipes/bitbucket.md +72 -0
- package/skills/testeiya/testomatio-docs/docs/test-reporting/pipes/csv.md +23 -0
- package/skills/testeiya/testomatio-docs/docs/test-reporting/pipes/debug.md +18 -0
- package/skills/testeiya/testomatio-docs/docs/test-reporting/pipes/github.md +63 -0
- package/skills/testeiya/testomatio-docs/docs/test-reporting/pipes/gitlab.md +29 -0
- package/skills/testeiya/testomatio-docs/docs/test-reporting/pipes/html.md +80 -0
- package/skills/testeiya/testomatio-docs/docs/test-reporting/pipes/index.mdx +57 -0
- package/skills/testeiya/testomatio-docs/docs/test-reporting/pipes/testomatio.md +331 -0
- package/skills/testeiya/testomatio-docs/docs/test-reporting/python.md +229 -0
- package/skills/testeiya/testomatio-docs/docs/test-reporting/workflows.md +325 -0
- package/skills/testeiya/testomatio-docs/docs/tutorials/Interacting-via-API.md +159 -0
- package/skills/testeiya/testomatio-docs/docs/tutorials/Manual-Testing-Classic.md +164 -0
- package/skills/testeiya/testomatio-docs/docs/tutorials/Set-Up-Read-Only-Access.md +85 -0
- package/skills/testeiya/testomatio-docs/docs/tutorials/Using-AI-in-Testing.md +163 -0
- package/skills/testeiya/testomatio-docs/docs/tutorials/Working-with-Jira.md +125 -0
- package/skills/testeiya/testomatio-docs/docs/tutorials/java.md +478 -0
- package/skills/testeiya/testomatio-docs/docs/tutorials/playwright.md +207 -0
- package/skills/testeiya/testomatio-docs/docs/tutorials/webdriver.md +218 -0
- package/skills/testeiya/testomatio-docs/docs.lock.json +6 -0
- package/skills/testeiya/testomatio-reporter/SKILL.md +307 -0
- package/skills/testomatio/explorbot/explorbot-fundamentals/SKILL.md +88 -0
- package/skills/testomatio/explorbot/explorbot-plan/SKILL.md +95 -0
- package/skills/testomatio/explorbot/explorbot-setup/SKILL.md +334 -0
- package/skills/testomatio/test-automation/automate-manual-test-cases/CLAUDE.md +56 -0
- package/skills/testomatio/test-automation/automate-manual-test-cases/SKILL.md +242 -0
- package/skills/testomatio/test-automation/automate-manual-test-cases/references/CODECEPTJS_BEST_PRACTICES.md +182 -0
- package/skills/testomatio/test-automation/automate-manual-test-cases/references/FINAL_SUMMARY_TEMPLATE.md +22 -0
- package/skills/testomatio/test-automation/automate-manual-test-cases/references/PLAYWRIGHT_BEST_PRACTICES.md +90 -0
- package/skills/testomatio/test-automation/automate-manual-test-cases/references/POM_BEST_PRACTICES.md +53 -0
- package/skills/testomatio/test-automation/automate-manual-test-cases/references/TEST_DATA_MANAGEMENT.md +52 -0
- package/skills/testomatio/test-automation/debug-fix-failed-flaky-autotests/SKILL.md +107 -0
- package/skills/testomatio/test-automation/debug-fix-failed-flaky-autotests/references/DEBUGGING_QUICK_REFERENCE.md +113 -0
- package/skills/testomatio/test-automation/qa-automation-test-consolidation/SKILL.md +29 -0
- package/skills/testomatio/test-automation/run-tests-with-testomatio-reporter/SKILL.md +151 -0
- package/skills/testomatio/test-automation/setup-pr-testing/SKILL.md +199 -0
- package/skills/testomatio/test-automation/testomat-allure-adapter/SKILL.md +289 -0
- package/skills/testomatio/test-management/detect-duplicate-test-cases/SKILL.md +86 -0
- package/skills/testomatio/test-management/detect-duplicate-test-cases/references/DUPLICATE_INSTRUCTIONS.md +54 -0
- package/skills/testomatio/test-management/improve-test-cases/SKILL.md +114 -0
- package/skills/testomatio/test-management/improve-test-cases/references/TESTOMAT_MARKDOWN_EXAMPLE.md +66 -0
- package/skills/testomatio/test-management/pull-request-diff-analyzer/SKILL.md +141 -0
- package/skills/testomatio/test-management/qa-e2e-tests-reporting/SKILL.md +354 -0
- package/skills/testomatio/test-management/qa-e2e-tests-reporting/references/TESTOMATIO_ARTIFACTS.md +82 -0
- package/skills/testomatio/test-management/qa-e2e-tests-reporting/references/TESTOMATIO_HTML_REPORT.md +37 -0
- package/skills/testomatio/test-management/qa-e2e-tests-reporting/references/TESTOMATIO_REPORTERS_CONFIG.md +118 -0
- package/skills/testomatio/test-management/qa-pr-requirements-analyzer/SKILL.md +149 -0
- package/skills/testomatio/test-management/qa-pr-requirements-analyzer/references/summary-example.md +54 -0
- package/skills/testomatio/test-management/qa-requirement-reviewer/SKILL.md +126 -0
- package/skills/testomatio/test-management/qa-requirement-reviewer/references/requirements_reviewer_examples.md +128 -0
- package/skills/testomatio/test-management/qa-test-code-coverage/SKILL.md +174 -0
- package/skills/testomatio/test-management/qa-test-code-coverage/references/COVERAGE_FILE_FORMAT.md +138 -0
- package/skills/testomatio/test-management/qa-test-code-coverage/references/E2E_FRAMEWORKS.md +65 -0
- package/skills/testomatio/test-management/qa-test-code-coverage/scripts/check-coverage.mjs +40 -0
- package/skills/testomatio/test-management/qa-thinking/SKILL.md +36 -0
- package/skills/testomatio/test-management/qa-write-test-cases/SKILL.md +267 -0
- package/skills/testomatio/test-management/qa-write-test-cases/references/test-case-format.md +387 -0
- package/skills/testomatio/test-management/qa-write-test-cases/references/testomat-tms-guide.md +72 -0
- package/skills/testomatio/test-management/qa-write-test-cases/references/writing-rule.md +159 -0
- package/skills/testomatio/test-management/scan-automation-project/SKILL.md +152 -0
- package/skills/testomatio/test-management/sync-test-cases-with-tms/SKILL.md +107 -0
- package/skills/testomatio/test-management/sync-test-cases-with-tms/references/TESTOMATIO_CLI.md +140 -0
- package/skills/testomatio/test-management/testomatio-mcp/SKILL.md +182 -0
- package/skills/testomatio/test-management/testomatio-mcp/references/MCP_SETUP.md +169 -0
- package/skills.lock.json +72 -0
- package/skills.yaml +21 -0
- package/src/ai-debug.ts +188 -0
- package/src/api/agent-get.ts +22 -0
- package/src/api/agent-start.ts +384 -0
- package/src/api/client-log.ts +29 -0
- package/src/api/context.ts +332 -0
- package/src/api/debug-layout.ts +47 -0
- package/src/api/debug-report.ts +29 -0
- package/src/api/debug-snapshot.ts +30 -0
- package/src/api/debug-stream.ts +52 -0
- package/src/api/files-delete.ts +184 -0
- package/src/api/files-read.ts +41 -0
- package/src/api/files-rename.ts +99 -0
- package/src/api/files-tree.ts +292 -0
- package/src/api/files-write.ts +41 -0
- package/src/api/mcp.ts +603 -0
- package/src/api/memory.ts +69 -0
- package/src/api/open-external.ts +39 -0
- package/src/api/playwright-cli.ts +606 -0
- package/src/api/providers.ts +457 -0
- package/src/api/read-env-token.ts +33 -0
- package/src/api/sessions.ts +79 -0
- package/src/api/settings.ts +120 -0
- package/src/api/skills.ts +58 -0
- package/src/api/testomatio-attachment.ts +89 -0
- package/src/api/testomatio-auth.ts +284 -0
- package/src/api/testomatio-proxy.ts +197 -0
- package/src/api/testomatio-run-stats.ts +81 -0
- package/src/api/testomatio-target.ts +225 -0
- package/src/api/testomatio-transcription.ts +82 -0
- package/src/api/workspace-search.ts +96 -0
- package/src/api/workspace-sync.ts +151 -0
- package/src/api/workspace.ts +165 -0
- package/src/app-server.ts +556 -0
- package/src/bridge.ts +251 -0
- package/src/check-tests.ts +156 -0
- package/src/cli.ts +17 -0
- package/src/commands.ts +244 -0
- package/src/config.ts +183 -0
- package/src/connection.ts +658 -0
- package/src/context-store.ts +265 -0
- package/src/debug-bus.ts +405 -0
- package/src/extensions/tool-gate.ts +220 -0
- package/src/extensions/webui/ask-channel.ts +52 -0
- package/src/extensions/webui/index.ts +184 -0
- package/src/extensions/webui/tools/ask-question.ts +88 -0
- package/src/extensions/webui/tools/query-result.ts +79 -0
- package/src/extensions/webui/tools/render-chart.ts +53 -0
- package/src/extensions/webui/tools/render-item.ts +61 -0
- package/src/extensions/webui/tools/render-list.ts +170 -0
- package/src/extensions/webui/tools/render-result.ts +85 -0
- package/src/extensions/webui/tools/render-tree.ts +71 -0
- package/src/extensions/webui/tools/ui-widget.ts +54 -0
- package/src/extensions/webui/tools/widget-result.ts +13 -0
- package/src/extensions/webui/widget-channel.ts +50 -0
- package/src/file-log.ts +196 -0
- package/src/git-tracked.ts +68 -0
- package/src/gitignore.ts +53 -0
- package/src/json-store.ts +43 -0
- package/src/load-env.ts +70 -0
- package/src/loader-style.ts +96 -0
- package/src/main.ts +140 -0
- package/src/mcp-catalog.ts +96 -0
- package/src/models-catalog.ts +72 -0
- package/src/permissions.ts +120 -0
- package/src/project-dir.ts +189 -0
- package/src/project-info.ts +108 -0
- package/src/prompt/app-ui.ts +59 -0
- package/src/prompt/browser.ts +27 -0
- package/src/prompt/index.ts +62 -0
- package/src/prompt/system-prompt.ts +161 -0
- package/src/prompt/testomatio.ts +170 -0
- package/src/prompt/tools.ts +27 -0
- package/src/server-info.ts +62 -0
- package/src/session-factory.ts +442 -0
- package/src/session-store.ts +115 -0
- package/src/shell-env.ts +45 -0
- package/src/skills.ts +163 -0
- package/src/sync-snapshot.ts +140 -0
- package/src/telemetry.ts +239 -0
- package/src/testomatio-auth.ts +299 -0
- package/src/testomatio.ts +98 -0
- package/src/theme.ts +30 -0
- package/src/user-env.ts +94 -0
- package/src/welcome.ts +127 -0
- package/src/workspace/safe-path.ts +85 -0
- package/src/workspace/test-md.ts +70 -0
- package/src/workspace-model.ts +440 -0
- package/testeiya.config.json +14 -0
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: debug-fix-failed-flaky-autotests
|
|
3
|
+
description: Diagnose and fix failing automated tests. Analyzes failures, inspects DOM, identifies root causes, and applies targeted fixes using framework tools and MCP/CLI debug modes. Use when tests fail, are flaky, or behave inconsistently (e.g., pass locally but fail in CI).
|
|
4
|
+
license: MIT
|
|
5
|
+
metadata:
|
|
6
|
+
author: Testomat.io
|
|
7
|
+
version: 1.0.0
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Debug and Fix Failing Autotests
|
|
11
|
+
|
|
12
|
+
Diagnose failing automated tests and apply targeted fixes.
|
|
13
|
+
Follow the four steps in order.
|
|
14
|
+
Detailed fixes and code examples: [references/DEBUGGING_QUICK_REFERENCE.md](references/DEBUGGING_QUICK_REFERENCE.md).
|
|
15
|
+
|
|
16
|
+
## Step 1: Analyze Failure
|
|
17
|
+
|
|
18
|
+
- Identify the framework. It determines the debug tools:
|
|
19
|
+
- Playwright: CLI debug, trace viewer, MCP snapshots.
|
|
20
|
+
- CodeceptJS: `--steps` mode, CDP inspection.
|
|
21
|
+
- Cypress: devTools, screenshots on failure.
|
|
22
|
+
- WebdriverIO: Selenium logs.
|
|
23
|
+
- Categorize the error:
|
|
24
|
+
- Locator (element missing/unreachable).
|
|
25
|
+
- Timing (timeout/race).
|
|
26
|
+
- Assertion (expected ≠ actual).
|
|
27
|
+
- Flow (navigation, preconditions).
|
|
28
|
+
- Infrastructure (CI/browser/network).
|
|
29
|
+
- End with a hypothesis: root cause + fix category.
|
|
30
|
+
|
|
31
|
+
## Step 2: Inspect and Diagnose
|
|
32
|
+
|
|
33
|
+
- DOM inspection:
|
|
34
|
+
- Playwright: `page.locator('selector').evaluate(el => el.outerHTML)`.
|
|
35
|
+
- CodeceptJS: `I.executeScript(() => document.querySelector('.selector').outerHTML)`.
|
|
36
|
+
- MCP snapshot: capture live DOM state for complex elements.
|
|
37
|
+
- Console and network logs:
|
|
38
|
+
- Console: `page.on('console', msg => console.log(msg.text()))`.
|
|
39
|
+
- Failed requests: `page.on('requestfailed', r => console.log(r.failure().errorText))`.
|
|
40
|
+
- Trace analysis (Playwright): `npx playwright show-trace trace.zip`.
|
|
41
|
+
- Inspect timing and order of clicks, navigation, network requests.
|
|
42
|
+
|
|
43
|
+
## Step 3: Apply Fix
|
|
44
|
+
|
|
45
|
+
**Fix in priority order: locators → timing → assertions → flow.**
|
|
46
|
+
|
|
47
|
+
- Locators: use stable selectors (`data-testid` → `aria-label` → `role` → `id` → `text` → CSS/XPath).
|
|
48
|
+
- Re-fetch stale elements, scroll hidden elements into view, use `.first()` for multiple matches.
|
|
49
|
+
- Timing: use framework-native waits (`waitFor`, `waitForNavigation`, `waitForLoadState('networkidle')`).
|
|
50
|
+
- **No hard sleeps** like `sleep(5000)` or `wait(2)`.
|
|
51
|
+
- Assertions: use contains/regex for flexible matching.
|
|
52
|
+
- Verify expected values against the test spec, not assumptions.
|
|
53
|
+
- Flow: ensure preconditions (login, navigation order, test data).
|
|
54
|
+
- Isolate test state from prior runs.
|
|
55
|
+
|
|
56
|
+
Before/after examples for each category: [references/DEBUGGING_QUICK_REFERENCE.md](references/DEBUGGING_QUICK_REFERENCE.md).
|
|
57
|
+
|
|
58
|
+
## Step 4: Verify and Stabilize
|
|
59
|
+
|
|
60
|
+
Re-run the test:
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
npx playwright test path/to/test.spec.ts
|
|
64
|
+
npx codeceptjs run path/to/test.js
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Test is stable when:
|
|
68
|
+
- Passes 2 consecutive runs.
|
|
69
|
+
- Uses resilient locators.
|
|
70
|
+
- Waits properly for dynamic content.
|
|
71
|
+
|
|
72
|
+
**Max 3 healing attempts total.** After 3 failed attempts: stop, document what was tried, ask the user for guidance.
|
|
73
|
+
|
|
74
|
+
Document the fix: root cause, applied fix, verification result.
|
|
75
|
+
|
|
76
|
+
## MCP Debug Tools (Optional)
|
|
77
|
+
|
|
78
|
+
Use MCP when standard fixes fail, the UI is complex (dropdowns, modals, dynamic content), or live DOM inspection is needed:
|
|
79
|
+
- Playwright MCP: live snapshots, element counts, DOM inspection after each action.
|
|
80
|
+
- CodeceptJS MCP: CDP-based inspection, `--steps` mode for live debugging.
|
|
81
|
+
|
|
82
|
+
## User Interaction
|
|
83
|
+
|
|
84
|
+
Ask when unclear:
|
|
85
|
+
|
|
86
|
+
```
|
|
87
|
+
❓ Which element should I target for this action?
|
|
88
|
+
|
|
89
|
+
Options:
|
|
90
|
+
1. Submit button (data-testid="submit")
|
|
91
|
+
2. Save button (aria-label="Save")
|
|
92
|
+
3. Other (specify)
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
Report progress:
|
|
96
|
+
|
|
97
|
+
```
|
|
98
|
+
🔍 Analyzing failure...
|
|
99
|
+
- Error: Element not found
|
|
100
|
+
- Context: Login test, line 42
|
|
101
|
+
|
|
102
|
+
🔧 Applying fix...
|
|
103
|
+
- Issue: Selector too broad
|
|
104
|
+
- Fix: Using getByRole('button', { name: 'Login' })
|
|
105
|
+
|
|
106
|
+
✅ Test passed! (Run 1/2)
|
|
107
|
+
```
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
# Debugging Quick Reference
|
|
2
|
+
|
|
3
|
+
Fix in priority order: locators → timing → assertions → flow.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Locator Fixes
|
|
8
|
+
|
|
9
|
+
| Problem | Avoid | Prefer |
|
|
10
|
+
|---------|-------|--------|
|
|
11
|
+
| Deep nesting | `.parent .child .grandchild` | `[data-testid="target"]` |
|
|
12
|
+
| Index-based | `button:nth-child(2)` | `getByRole('button', { name: 'Submit' })` |
|
|
13
|
+
| Partial text | `button:contains("Save")` | `getByText('Save', { exact: true })` |
|
|
14
|
+
| Dynamic classes | `.btn-primary-123` | `[data-testid="save-btn"]` |
|
|
15
|
+
|
|
16
|
+
Element state issues:
|
|
17
|
+
|
|
18
|
+
- Not found => wait for element before action.
|
|
19
|
+
- Not visible => scroll into view.
|
|
20
|
+
- Not clickable => wait for enabled state; check overlays.
|
|
21
|
+
- Stale element => re-fetch element before action.
|
|
22
|
+
- Multiple matches => filter or use `.first()`.
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Timing Fixes
|
|
27
|
+
|
|
28
|
+
Use framework-native waits instead of hard sleeps.
|
|
29
|
+
|
|
30
|
+
- Avoid hard sleeps (`sleep(5000)`, `wait(2)`) => flaky.
|
|
31
|
+
- Avoid implicit short waits => unreliable.
|
|
32
|
+
- Works locally, fails in CI => CI is slower; increase timeouts and add explicit waits.
|
|
33
|
+
|
|
34
|
+
**Playwright:**
|
|
35
|
+
```typescript
|
|
36
|
+
await page.getByTestId('loader').waitFor({ state: 'hidden' });
|
|
37
|
+
await page.waitForURL('/dashboard/**');
|
|
38
|
+
await page.waitForResponse(r => r.status() === 200);
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
**CodeceptJS:**
|
|
42
|
+
```javascript
|
|
43
|
+
I.waitForNavigationVisible();
|
|
44
|
+
I.waitForResponse(response => response.status() === 200);
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### Fix Race Conditions
|
|
48
|
+
|
|
49
|
+
Ensure assertions happen after dynamic content updates.
|
|
50
|
+
Use `expect` with Playwright's built-in waiting, or `locator.waitFor()` only if needed.
|
|
51
|
+
|
|
52
|
+
```typescript
|
|
53
|
+
// Click triggers dynamic update
|
|
54
|
+
await page.getByRole('button', { name: 'Submit' }).click();
|
|
55
|
+
|
|
56
|
+
// Wait for result text to appear (optional, only if dynamically loaded)
|
|
57
|
+
await expect(page.getByTestId('result')).toHaveText('Success'); // automatically waits
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## Assertion Fixes
|
|
63
|
+
|
|
64
|
+
- Exact match too strict => use `toContain()` or regex.
|
|
65
|
+
- Wrong expected value => verify against test spec.
|
|
66
|
+
- Timing issues => wait before assertion.
|
|
67
|
+
- Multiple elements => use `.first()` or `.nth(0)`.
|
|
68
|
+
|
|
69
|
+
Examples:
|
|
70
|
+
|
|
71
|
+
```typescript
|
|
72
|
+
// Before: exact match fails on whitespace
|
|
73
|
+
expect(await page.locator('.title').textContent()).toBe('Hello World');
|
|
74
|
+
|
|
75
|
+
// After: contains check
|
|
76
|
+
await expect(page.locator('.title')).toContainText('Hello');
|
|
77
|
+
|
|
78
|
+
// Better: trim if exact needed
|
|
79
|
+
const text = (await page.locator('.title').textContent()).trim();
|
|
80
|
+
expect(text).toBe('Hello World');
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## Flow Fixes
|
|
86
|
+
|
|
87
|
+
- Missing preconditions => ensure login, proper navigation, and required test data.
|
|
88
|
+
- Fails on 2nd run => add cleanup hooks.
|
|
89
|
+
- Depends on order => use `beforeEach` for fresh state.
|
|
90
|
+
- Shared state => isolate per test worker.
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## Framework-Specific Commands
|
|
95
|
+
|
|
96
|
+
**Playwright:**
|
|
97
|
+
- Show trace: `npx playwright show-trace trace.zip`
|
|
98
|
+
- Run single file: `npx playwright test path/to/test.spec.ts`
|
|
99
|
+
|
|
100
|
+
**CodeceptJS:**
|
|
101
|
+
- Steps mode: `npx codeceptjs run --steps`
|
|
102
|
+
- Verbose: `npx codeceptjs run --verbose`
|
|
103
|
+
- Single file: `npx codeceptjs run path/to/test.js`
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## Max 3 Healing Attempts
|
|
108
|
+
|
|
109
|
+
1. Attempt 1: apply fix based on initial diagnosis.
|
|
110
|
+
2. Attempt 2: if still fails, re-diagnose with new info.
|
|
111
|
+
3. Attempt 3: last try with an alternative approach.
|
|
112
|
+
|
|
113
|
+
If still failing => STOP, document what was tried, ask the user for guidance.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: qa-automation-test-consolidation
|
|
3
|
+
description: Detect redundant tests, duplicated test logic, semantic overlaps, and parameterization opportunities across the entire test suite. Present recommendations and request user approval before refactoring.
|
|
4
|
+
license: MIT
|
|
5
|
+
metadata:
|
|
6
|
+
author: Testomat.io
|
|
7
|
+
version: 1.0.0
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Summary
|
|
11
|
+
|
|
12
|
+
This skill analyzes an entire test suite to identify duplicate tests, semantic overlaps, duplicated test logic, parameterization opportunities, and overlapping business-rule validations. It prioritizes behavioral similarity over code similarity and recommends refactorings that reduce maintenance effort while preserving test coverage and business intent. No changes are applied without explicit user approval.
|
|
13
|
+
|
|
14
|
+
## How the Loop Works
|
|
15
|
+
|
|
16
|
+
- Analyze the entire test suite for consolidation opportunities;
|
|
17
|
+
- Group findings by type and confidence level;
|
|
18
|
+
- Present a summary of the proposed changes and request user approval;
|
|
19
|
+
- Apply the approved refactorings;
|
|
20
|
+
- Re-analyze the updated test suite to identify newly exposed consolidation opportunities;
|
|
21
|
+
- Repeat until no additional consolidation opportunities with a confidence level greater than 80% remain.
|
|
22
|
+
|
|
23
|
+
## Definition of Done
|
|
24
|
+
|
|
25
|
+
- The entire test suite has been analyzed;
|
|
26
|
+
- All consolidation opportunities have been presented to the user;
|
|
27
|
+
- All approved refactorings have been applied;
|
|
28
|
+
- The test suite has been re-analyzed after each iteration;
|
|
29
|
+
- No duplicate tests, duplicated test logic, parameterization opportunities, or business-rule overlaps with a confidence level greater than 80% remain.
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: run-tests-with-testomatio-reporter
|
|
3
|
+
description: Create and launch Testomat.io test runs with the `@testomatio/reporter` CLI. Covers manual runs for testers, mixed manual+automated runs, local test execution with reported results, and remote launches through a Testomat.io CI profile (`--remote`). Runs can include the whole suite or be filtered by tag, plan, label, Jira ticket, or changed source files. Use when the user asks to start or create a test run from the command line, run a filtered group of tests, launch tests remotely, or report results into an existing run.
|
|
4
|
+
license: MIT
|
|
5
|
+
metadata:
|
|
6
|
+
author: Testomat.io
|
|
7
|
+
version: 1.1.0
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Run Tests with Testomat.io Reporter
|
|
11
|
+
|
|
12
|
+
`npx @testomatio/reporter` creates test runs in Testomat.io and launches groups of tests — locally or remotely through a Testomat.io CI profile. Every command requires the `TESTOMATIO` env var (the project API key, `tstmt_*`) and exits 1 without it. Every value in angle brackets is a placeholder.
|
|
13
|
+
|
|
14
|
+
## Pick the command by intent
|
|
15
|
+
|
|
16
|
+
| Intent | Command |
|
|
17
|
+
| --------------------------------------------------- | ------------------------------------------- |
|
|
18
|
+
| Create a run, execute nothing — testers start on it | `start` |
|
|
19
|
+
| Execute tests locally and report results | `run "<runner command>"` |
|
|
20
|
+
| Launch tests remotely via a Testomat.io CI profile | `run --remote <profile-name>` |
|
|
21
|
+
| List which tests a filter matches, run nothing | `run --filter-list "<filter>" --format ids` |
|
|
22
|
+
| Close a run created earlier | `finish` (run id via `TESTOMATIO_RUN`) |
|
|
23
|
+
|
|
24
|
+
## Run kinds
|
|
25
|
+
|
|
26
|
+
`--kind` declares what the run contains:
|
|
27
|
+
|
|
28
|
+
| Kind | Flag | Behavior |
|
|
29
|
+
| --------- | --------------- | ----------------------------------------------------------------------------------------------- |
|
|
30
|
+
| manual | `--kind manual` | manual cases only — pending for testers, complete without any launch |
|
|
31
|
+
| mixed | `--kind mixed` | manual + automated in one run — testers work it while the automated part is launched separately |
|
|
32
|
+
| automated | *(no flag)* | automated tests only |
|
|
33
|
+
|
|
34
|
+
A run created with `start` executes nothing: manual cases are pending immediately; an automated part stays scheduled until launched. `--format id` prints only the run id to stdout (banner and logs go to stderr), so capture is clean:
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
RUN_ID=$(npx @testomatio/reporter start --kind manual --format id)
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## What goes into the run
|
|
41
|
+
|
|
42
|
+
Without a filter, nothing is scoped:
|
|
43
|
+
|
|
44
|
+
- `start` creates a run with no predefined test list — results land in it later, when tests report with `TESTOMATIO_RUN=<run-id>`.
|
|
45
|
+
- `run "<runner command>"` executes the full suite and reports every result.
|
|
46
|
+
- `run --remote <profile-name>` dispatches the Testomat.io CI profile with its default scope.
|
|
47
|
+
|
|
48
|
+
`--filter "<pipe>:<criteria>"` narrows the run to the matching tests instead. Two filter pipes exist — `testomatio:` (match by test metadata stored in the project) and `coverage:` (match by changed source files); any other prefix is rejected. `start` and `run` accept the same filters, so a filtered run can be prepared first and launched later.
|
|
49
|
+
|
|
50
|
+
### Filter by tag, plan, label, or Jira ticket (`testomatio:`)
|
|
51
|
+
|
|
52
|
+
| Criteria | Filter |
|
|
53
|
+
| -------------------------- | -------------------------------------------- |
|
|
54
|
+
| tag | `"testomatio:tag-name=<tag>"` |
|
|
55
|
+
| plan (Testomat.io plan id) | `"testomatio:plan=<plan-id>"` |
|
|
56
|
+
| label | `"testomatio:label=<label>"` |
|
|
57
|
+
| label with value | `"testomatio:label=<label>:<value>"` |
|
|
58
|
+
| Jira ticket | `"testomatio:jira-ticket=<ticket-id>"` |
|
|
59
|
+
|
|
60
|
+
- The value must match exactly — the tag name, plan id, label, or ticket as stored in the project.
|
|
61
|
+
- Works with every test framework whose runner accepts `--grep` (Playwright, CodeceptJS, Cypress, etc.) — the filter resolves to a grep pattern the runner consumes.
|
|
62
|
+
|
|
63
|
+
### Filter by changed source files (`coverage:`)
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
--filter "coverage:file=<path-to-coverage-map>,diff=<git-ref>"
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
This is how "run only the tests affected by a code change" works — and it needs a **coverage map**: a YAML file mapping source files/globs to test IDs and tags. The reporter cannot know by itself which tests cover which code; the map provides that link, and the diff selects which of its entries are affected. Create the map with the `qa-test-code-coverage` skill (default `coverage.tests.yml`, one file serving both manual and automated tests).
|
|
70
|
+
|
|
71
|
+
- `file=` — path to the coverage map. May be absolute; it is read with `fs`, independent of the working directory.
|
|
72
|
+
- `diff=` — git ref to diff against; defaults to `master`. The reporter runs `git diff <ref> --name-only` **in `process.cwd()`** — launch it from inside the repo whose changes are being detected.
|
|
73
|
+
- Changed files are mapped through the YAML; the matching suite/test IDs and tags become the run's scope.
|
|
74
|
+
- Zero matching tests → no run is created (`No tests found.`); treat that as success in scripts and CI jobs.
|
|
75
|
+
|
|
76
|
+
#### Picking the diff base
|
|
77
|
+
|
|
78
|
+
- Changes on a branch → diff against its target branch (e.g. `origin/<default-branch>`). Full git history must be available (`fetch-depth: 0` or the CI's equivalent).
|
|
79
|
+
- After a merge the target branch equals `HEAD`, so diffing against it yields nothing — use the previous mainline tip: `HEAD~1` for squash merges, `HEAD^1` for merge commits.
|
|
80
|
+
|
|
81
|
+
### List matching tests without running (`--filter-list`)
|
|
82
|
+
|
|
83
|
+
`--filter-list` resolves a filter and prints the matching test IDs — nothing executes, no run is created. `--format` picks the encoding: `ids` (comma-separated, default), `grep` (alternation pattern), `json`, `newline`. Exit code 0 when at least one test matched, 1 when nothing did — scripts can branch on it:
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
GREP=$(npx @testomatio/reporter run --filter-list "coverage:file=<coverage-map>" --format grep)
|
|
87
|
+
[ -n "$GREP" ] && npx playwright test --grep "$GREP"
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Cannot be combined with `--remote`.
|
|
91
|
+
|
|
92
|
+
## Name and group the run
|
|
93
|
+
|
|
94
|
+
- `TESTOMATIO_TITLE` — the run title (e.g. `PR <number>: <title>`).
|
|
95
|
+
- `TESTOMATIO_RUNGROUP_TITLE` — groups related runs (per week / release / milestone).
|
|
96
|
+
- `TESTOMATIO_ENV` — optional environment labels.
|
|
97
|
+
|
|
98
|
+
## Report into an existing run
|
|
99
|
+
|
|
100
|
+
- `TESTOMATIO_RUN=<run-id>` — the command reports or launches into that run instead of creating a new one. Works across pipelines and even across repos — pass it (with `TESTOMATIO` and the title env) into whatever process executes the tests.
|
|
101
|
+
- No id at hand → shared-run title matching. Set on both sides:
|
|
102
|
+
- `TESTOMATIO_SHARED_RUN=1` — match the run by `TESTOMATIO_TITLE` instead of creating a new one;
|
|
103
|
+
- `TESTOMATIO_TITLE` — the match key, identical on both sides;
|
|
104
|
+
- `TESTOMATIO_SHARED_RUN_TIMEOUT` — minutes the title stays matchable, **default 20**; size it to the expected gap between create and launch.
|
|
105
|
+
|
|
106
|
+
## Remote launch (`run --remote`)
|
|
107
|
+
|
|
108
|
+
`--remote <profile-name>` asks Testomat.io to dispatch a **Testomat.io CI profile** — a CI workflow configuration saved on the project (Settings → CI) — instead of executing tests locally. Testomat.io triggers that workflow, and its results report back into the run:
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
TESTOMATIO_RUN=$RUN_ID npx @testomatio/reporter run --remote <profile-name> \
|
|
112
|
+
--filter "coverage:file=<coverage-map>,diff=<git-ref>"
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
- With `TESTOMATIO_RUN`, the Testomat.io CI profile is triggered for that run; without it, a new run is created.
|
|
116
|
+
- Works with every filter form — the resolved test ids are forwarded to the CI workflow as a grep pattern. No filter → no grep; the workflow runs its default scope, or a prepared run's stored scope from creation time. A fresh `--filter` at launch replaces the stored scope.
|
|
117
|
+
- `--remote-param <key>=<value>` forwards a parameter to the Testomat.io CI profile config (repeat for several) — e.g. a preview URL or target branch.
|
|
118
|
+
- Guards: cannot combine with `--filter-list`; any positional command is ignored with a warning; a missing Testomat.io CI profile fails with `CI launch failed: <message>` and exit 1.
|
|
119
|
+
|
|
120
|
+
### Choosing the Testomat.io CI profile
|
|
121
|
+
|
|
122
|
+
Profiles differ by workflow, job names, and parameters — never guess one. When talking to the user, always say "Testomat.io CI profile" in full and explain what it is; the bare word "profile" means nothing to them.
|
|
123
|
+
|
|
124
|
+
- Testomat.io MCP connected → fetch the Testomat.io CI profiles, present the list, and ask the user to choose (see `testomatio-mcp` to connect).
|
|
125
|
+
- No MCP → ask the user for the Testomat.io CI profile name.
|
|
126
|
+
- None exists yet → the user must create one in Testomat.io (Settings → CI) first.
|
|
127
|
+
|
|
128
|
+
## Local execution (`run "<runner command>"`)
|
|
129
|
+
|
|
130
|
+
Wrap the runner and results report into the run as they come. Without a filter the whole suite runs; with one, the filter generates the grep the runner consumes:
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
TESTOMATIO_RUN=$RUN_ID npx @testomatio/reporter run "<runner command>" \
|
|
134
|
+
--filter "testomatio:tag-name=<tag>"
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
## PR/MR comments
|
|
138
|
+
|
|
139
|
+
When results report, the reporter posts and updates the PR/MR summary comment itself — never script a comment API call. Enable the pipe by setting its token:
|
|
140
|
+
|
|
141
|
+
| Platform | Env var | Note |
|
|
142
|
+
| --------- | ------------------------ | -------------------------------------------------- |
|
|
143
|
+
| GitHub | `GH_PAT` | the workflow's built-in token works inside PR runs |
|
|
144
|
+
| GitLab | `GITLAB_PAT` | access token with `api` scope |
|
|
145
|
+
| Bitbucket | `BITBUCKET_ACCESS_TOKEN` | repository access token |
|
|
146
|
+
|
|
147
|
+
No pipe for the platform (e.g. Azure DevOps) → no comment; results remain visible in Testomat.io.
|
|
148
|
+
|
|
149
|
+
## Related skills
|
|
150
|
+
|
|
151
|
+
`qa-test-code-coverage` (creates the coverage map the `coverage:` filter needs), `setup-pr-testing` (wires these commands into a CI pipeline), `qa-e2e-tests-reporting` (install and configure the reporter in an automation project).
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: setup-pr-testing
|
|
3
|
+
description: Set up CI so pull requests drive selective testing with Testomat.io. When a PR opens, a test run scoped to its changes is created for testers. The affected automated tests launch after a preview deploy or on merge. Use when the user wants to integrate Testomat.io runs into a CI pipeline, create test runs per pull request, or trigger affected tests from CI events.
|
|
4
|
+
license: MIT
|
|
5
|
+
metadata:
|
|
6
|
+
author: Testomat.io
|
|
7
|
+
version: 2.1.0
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Setup PR Testing
|
|
11
|
+
|
|
12
|
+
I set up a project's CI for PR-driven testing. What gets wired depends on the project's tests:
|
|
13
|
+
|
|
14
|
+
- manual — testers get a run to start on Testomat.io the moment the PR opens; nothing to execute.
|
|
15
|
+
- automated — an execution mode must be chosen: inline in the pipeline, a Testomat.io CI profile, or another workflow/repo.
|
|
16
|
+
- mixed — both, sharing one run per PR.
|
|
17
|
+
|
|
18
|
+
Every reporter command the jobs execute is documented in `run-tests-with-testomatio-reporter` — read it before wiring.
|
|
19
|
+
|
|
20
|
+
> **GOAL: a working pipeline committed to the project's own CI system.** That CI configuration is the one and only finished result. I run locally to author it — I am never part of CI. Do not execute reporter commands while authoring; the one exception is the final battle-test (Step 7), on a PR the user picked.
|
|
21
|
+
|
|
22
|
+
## Possible flows
|
|
23
|
+
|
|
24
|
+
Post this diagram as a chat message before the first question — never open with a question; it frames everything that follows. When questions go through a form or tool, the diagram must already be on screen in an earlier message. Render diagrams as Mermaid when the environment displays it; fall back to ASCII otherwise.
|
|
25
|
+
|
|
26
|
+
Never post a diagram bare — follow it immediately with one short paragraph explaining it: this is the general schema of PR testing, for the user to examine before anything is implemented; a run is created when a PR opens, and the user will now choose which types of tests execute (manual, automated, or both) and how the automated ones run — inline in the pipeline, through a Testomat.io CI profile, or by dispatching another repo — and when they launch (preview deploy or merge).
|
|
27
|
+
|
|
28
|
+
```mermaid
|
|
29
|
+
flowchart LR
|
|
30
|
+
PR([PR opened]) --> RUN[Create a run scoped<br/>to the PR changes]
|
|
31
|
+
RUN -->|manual / mixed| TESTERS[Testers execute manual cases<br/>on Testomat.io]
|
|
32
|
+
RUN -->|automated / mixed| SCHED[Schedule automated tests —<br/>nothing runs yet]
|
|
33
|
+
SCHED --> TRIG{When to launch?}
|
|
34
|
+
TRIG -->|preview deployed| MODE{How to execute?}
|
|
35
|
+
TRIG -->|PR merged| MODE
|
|
36
|
+
MODE -->|via a Testomat.io CI profile| RES
|
|
37
|
+
MODE -->|inline in this pipeline| RES
|
|
38
|
+
MODE -->|by dispatching another repo| RES
|
|
39
|
+
RES[Run the affected automated tests —<br/>results land in the PR run]
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Keep every diagram clear: verb-first action blocks ("Create a run", "Testers execute manual cases"), decisions as questions, configuration details in the text below — never as blocks, and end at an outcome.
|
|
43
|
+
|
|
44
|
+
- Manual-only project → only the top branch: the run is complete at creation, testers execute it on Testomat.io, nothing launches.
|
|
45
|
+
- Automated-only project → only the bottom branch: the scheduled run launches on a trigger through the chosen mode.
|
|
46
|
+
- Mixed project → both branches share one run per PR.
|
|
47
|
+
|
|
48
|
+
## The coverage map drives everything
|
|
49
|
+
|
|
50
|
+
A coverage map maps source files/globs to test identifiers; the reporter filters it by the diff so only impacted tests are prepared and run. It is produced by the `qa-test-code-coverage` skill — default `coverage.tests.yml`, one file serving both manual and automated tests. Missing map → delegate to `qa-test-code-coverage`; never hand-write one here. Without a map nothing can be filtered and no pipeline can be wired.
|
|
51
|
+
|
|
52
|
+
## Method, not snippets
|
|
53
|
+
|
|
54
|
+
The valuable knowledge here is the flow model and the decisions to confirm with the user. The reporter commands come from `run-tests-with-testomatio-reporter`; translating triggers into a specific CI's YAML/Groovy is yours — you already know how every CI expresses "on PR open", "after deploy finished", "on merge", "carry a value between pipelines", and "don't fail the pipeline". Write that config for the CI in front of you; never bake per-CI workflow files into this skill.
|
|
55
|
+
|
|
56
|
+
## Critical Constraints
|
|
57
|
+
|
|
58
|
+
- **Never execute the reporter while authoring — the deliverable is committed CI config.** Sole exception: the user-approved battle-test (Step 7).
|
|
59
|
+
- **Battle-test executes tests only for an already-merged PR**; an open PR only gets a run created.
|
|
60
|
+
- **Only touch CI config files** — never source or test files.
|
|
61
|
+
- Diagrams gate the dialogue: flows diagram before the first question, selected-flow diagram approved before wiring (Step 3), every diagram followed by a one-paragraph explanation.
|
|
62
|
+
- Discovery first — delegate to `scan-automation-project` before writing anything.
|
|
63
|
+
- Never assume or hardcode the CI system; read the repo, ask if unclear.
|
|
64
|
+
- Never guess a Testomat.io CI profile name — pick from a list (Testomat.io MCP) confirmed by the user, or ask.
|
|
65
|
+
- Say "Testomat.io CI profile" in full, never bare "profile"; every question option explains itself in plain words.
|
|
66
|
+
- Avoid presenting the project's full test inventory as the run scope; never print full test lists.
|
|
67
|
+
- No coverage map → no pipeline; delegate map creation to `qa-test-code-coverage`.
|
|
68
|
+
- The PR-open job creates the run and executes nothing.
|
|
69
|
+
- Preview launches gate on the deploy-finished signal, never on the push.
|
|
70
|
+
- Launch jobs never block a PR and never fail a merge/release pipeline.
|
|
71
|
+
- PR comments come from the reporter's own pipes — never script a PR-comment API call.
|
|
72
|
+
- Every run gets a PR-based title and a rungroup.
|
|
73
|
+
|
|
74
|
+
## Workflow
|
|
75
|
+
|
|
76
|
+
### Step 1 — Discover
|
|
77
|
+
|
|
78
|
+
- Delegate to `scan-automation-project`: are there manual `.test.md` cases, which e2e framework exists (unit/integration don't count), do automated tests live in this repo or elsewhere.
|
|
79
|
+
- The result fixes the project kind — manual, automated, or mixed — and with it which flows apply.
|
|
80
|
+
- Read the repo's CI config files to identify the CI system. Several CIs or none → ask which one runs PRs.
|
|
81
|
+
- Locate the coverage map (default `coverage.tests.yml`). Missing → propose creating it and delegate to `qa-test-code-coverage`.
|
|
82
|
+
|
|
83
|
+
### Step 2 — Present the flows and ask the unknowns
|
|
84
|
+
|
|
85
|
+
Post the possible-flows diagram, trimmed to the kinds found in Step 1, as its own message with its one-paragraph explanation (what the schema is, which choices the user is about to make) — then ask only what applies. Read the CI files first so you don't ask what's already answered.
|
|
86
|
+
|
|
87
|
+
Manual tests found — nothing to choose: their part of the run is complete at creation, testers start on Testomat.io immediately.
|
|
88
|
+
|
|
89
|
+
Automated tests found — ❓ choose the execution mode. Each option in the question must explain itself in plain words — what runs where and who triggers it. In particular spell out what a Testomat.io CI profile is: a CI workflow configuration saved on the Testomat.io project (Settings → CI) that Testomat.io dispatches to execute the tests, with results reporting back into the run.
|
|
90
|
+
|
|
91
|
+
| Mode | When it fits |
|
|
92
|
+
| ------------------------------- | ------------------------------------------------------------------------------------------------------------- |
|
|
93
|
+
| Remote — Testomat.io CI profile | a Testomat.io CI profile for the e2e suite exists (Settings → CI); Testomat.io owns runner, env, secrets |
|
|
94
|
+
| Inline — this pipeline | mobile/simulators, services this pipeline spins up, or an e2e job that already works in this repo |
|
|
95
|
+
| Cross-repo dispatch | the e2e suite lives in another repo and no Testomat.io CI profile covers it |
|
|
96
|
+
|
|
97
|
+
- Remote chosen → identify the Testomat.io CI profile, never guess it: Testomat.io MCP connected → fetch the list, present it, ❓ ask the user to choose (profiles differ by workflow and job names); no MCP → ❓ ask for the exact profile name; none exists yet → creating one in Testomat.io (Settings → CI) is a prerequisite; wire the launch step ready to enable.
|
|
98
|
+
- No e2e suite anywhere → wire only the manual flow; never fabricate an e2e job.
|
|
99
|
+
|
|
100
|
+
Then the launch triggers (automated/mixed only):
|
|
101
|
+
|
|
102
|
+
1. Preview environments — is every commit deployed to a preview server? If yes: what is the observable deploy-finished signal, and where does the preview URL surface?
|
|
103
|
+
2. Post-merge timing — launch right on merge, or wait for a staging/production deploy to finish? A deploy gate needs its own observable signal.
|
|
104
|
+
|
|
105
|
+
And for every kind:
|
|
106
|
+
|
|
107
|
+
3. Rungroup strategy — week / day / release / milestone.
|
|
108
|
+
4. Diff base — the PR's target branch for PR jobs; post-merge jobs need the previous mainline tip (diff-base rules in `run-tests-with-testomatio-reporter`).
|
|
109
|
+
|
|
110
|
+
### Step 3 — Confirm the selected flow
|
|
111
|
+
|
|
112
|
+
- Draw the flow the answers produced — only the chosen kind, triggers, and execution mode. Mermaid when supported, ASCII otherwise.
|
|
113
|
+
- ❓ Present the diagram and get approval; wire nothing until the user accepts it.
|
|
114
|
+
|
|
115
|
+
Example — mixed project, Testomat.io CI profile, previews confirmed:
|
|
116
|
+
|
|
117
|
+
```mermaid
|
|
118
|
+
flowchart LR
|
|
119
|
+
PR([PR opened]) --> RUN[Create one mixed run<br/>scoped to the diff]
|
|
120
|
+
RUN --> TESTERS[Testers execute manual cases<br/>on Testomat.io]
|
|
121
|
+
RUN --> SCHED[Schedule automated tests —<br/>nothing runs yet]
|
|
122
|
+
PREV([Preview deployed]) --> L1[Launch automated tests via the<br/>Testomat.io CI profile, against the preview]
|
|
123
|
+
MERGE([PR merged]) --> L2[Launch automated tests<br/>with the final diff]
|
|
124
|
+
SCHED -.-> L1
|
|
125
|
+
SCHED -.-> L2
|
|
126
|
+
L1 --> RES[Results land in the PR run]
|
|
127
|
+
L2 --> RES
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
### Step 4 — Wire the phases into CI
|
|
131
|
+
|
|
132
|
+
Write the jobs in the CI's own syntax; take every command and env var from `run-tests-with-testomatio-reporter`. Manual-only projects get phase (a) alone.
|
|
133
|
+
|
|
134
|
+
**(a) PR opened → create the run.**
|
|
135
|
+
|
|
136
|
+
- Use `start` with the coverage filter; pick the run kind matching the project's tests.
|
|
137
|
+
- Persist the printed run id with the CI's native value-passing mechanism (artifact, variable, output); fallback is shared-run title matching.
|
|
138
|
+
- Run once per PR (on open); pushes to the PR don't recreate runs.
|
|
139
|
+
- A diff affecting zero tests creates no run — the job still succeeds.
|
|
140
|
+
|
|
141
|
+
**(b) Preview deployed → launch against the preview** (only when Step 2 confirmed previews).
|
|
142
|
+
|
|
143
|
+
- Trigger on the deploy-finished signal, never on the push.
|
|
144
|
+
- Remote mode forwards the preview URL as a remote param; inline mode points the runner's own base-URL env at it.
|
|
145
|
+
- Manual cases need no launch — testers work through them against the preview by hand.
|
|
146
|
+
|
|
147
|
+
**(c) PR merged → launch with the final diff.**
|
|
148
|
+
|
|
149
|
+
- Target the persisted run id; pass a fresh coverage filter with the post-merge diff base so the final merged diff decides what runs.
|
|
150
|
+
- Cross-repo mode: trigger the e2e repo's pipeline with the CI's native mechanism, passing the run id, API key, and title env into it.
|
|
151
|
+
- Keep the job non-blocking and off the release's critical path.
|
|
152
|
+
|
|
153
|
+
### Step 5 — Ensure secrets are set
|
|
154
|
+
|
|
155
|
+
- Store the project API key as `TESTOMATIO_<project_slug>` in the CI's secret store; map it to the `TESTOMATIO` env var in every job that calls the reporter. ❓ Slug unknown → ask the user.
|
|
156
|
+
- Tell the user exactly where to add it: name the secret-store location the CI at hand uses for this repo/pipeline and the exact secret name to type.
|
|
157
|
+
- Provision the PR-comment pipe token the same way (tokens per platform in `run-tests-with-testomatio-reporter`).
|
|
158
|
+
- ❓ Ask the user to confirm the secrets are in place before the pipeline PR merges — a pipeline with missing secrets fails on its first PR.
|
|
159
|
+
- The Testomat.io CI profile for remote launches is configured in Testomat.io (Settings → CI), not stored as a repo secret.
|
|
160
|
+
|
|
161
|
+
### Step 6 — Suggest a PR with the new workflow
|
|
162
|
+
|
|
163
|
+
- Commit the CI config on a branch and suggest opening a PR through the project's normal flow — the pipeline lands reviewed, never pushed straight to the default branch.
|
|
164
|
+
- Put in the PR description: the approved flow diagram, the phases wired, the execution mode chosen, and the secrets/prerequisites the reviewers must provision before merging.
|
|
165
|
+
- Where the CI runs PR-triggered workflows from the branch itself, point out that this very PR will exercise the PR-opened phase.
|
|
166
|
+
|
|
167
|
+
### Step 7 — Battle-test the setup (on approval)
|
|
168
|
+
|
|
169
|
+
Prove the pipeline's commands work before the CI ever runs them — by running them once, locally, on a real change.
|
|
170
|
+
|
|
171
|
+
- ❓ Ask the user for a real PR to validate with — open or already merged — and for approval to create real runs.
|
|
172
|
+
- Reproduce the pipeline's diff locally: open PR → check out its branch and diff against the target branch; merged PR → check out the merge commit and diff against the pre-merge tip.
|
|
173
|
+
- Create the run exactly as phase (a) does — same kind, same filter — with a title that marks it as a battle-test.
|
|
174
|
+
- Open PR → stop here: the run stays scheduled, nothing executes.
|
|
175
|
+
- Merged PR → the change is already in mainline, so launching is safe: run the phase (c) launch against the created run.
|
|
176
|
+
- Report every run created — id, kind, and the tests it scoped — and ask the user to review it in Testomat.io: does the scope match what that diff should affect?
|
|
177
|
+
- Zero tests matched → report it as a finding, then pick a PR that touches mapped source files together with the user.
|
|
178
|
+
|
|
179
|
+
### Step 8 — Summarize and hand off
|
|
180
|
+
|
|
181
|
+
Present the approved flow diagram once more, now marked as wired. Report: the CI targeted and files written; which phases are wired and which were skipped (no previews / no e2e / no Testomat.io CI profile); the chosen execution mode; title scheme and rungroup; how the launch steps find the prepared run (run id carrier or shared title); the battle-test outcome and the runs awaiting the user's review; secrets and prerequisites still to provision; assumptions to confirm. Recommend committing the coverage map alongside the CI config.
|
|
182
|
+
|
|
183
|
+
## Examples
|
|
184
|
+
|
|
185
|
+
**Example 1 — mixed project, previews, Testomat.io CI profile**
|
|
186
|
+
Discovery finds manual cases and an e2e suite; MCP lists the Testomat.io CI profiles and the user picks the one running the e2e suite; previews confirmed. → Diagram approved, then all three phases wired: mixed run on PR open, preview launch gated on the deployment-success event with the preview URL as a remote param, merge launch with a fresh post-merge filter. Comment pipe enabled.
|
|
187
|
+
|
|
188
|
+
**Example 2 — e2e lives in another repo, no Testomat.io CI profile**
|
|
189
|
+
The user picks cross-repo dispatch from the mode table: the merge job triggers the e2e repo's pipeline via the CI's native mechanism, passing the run id so results land in the prepared run. Note the Testomat.io CI profile option as the simpler future path.
|
|
190
|
+
|
|
191
|
+
**Example 3 — no coverage map yet**
|
|
192
|
+
No `coverage*.yml` found → explain nothing can be filtered without a map; delegate to `qa-test-code-coverage`; wire CI only after the map exists.
|
|
193
|
+
|
|
194
|
+
**Example 4 — manual-only project**
|
|
195
|
+
`scan-automation-project` finds `.test.md` cases and no e2e framework → the flows diagram shows only the manual branch; no execution-mode or trigger questions asked. One phase wired: a manual run per PR, complete at creation — testers start on Testomat.io. Explain that launch phases need an e2e suite first.
|
|
196
|
+
|
|
197
|
+
## Related skills
|
|
198
|
+
|
|
199
|
+
`run-tests-with-testomatio-reporter` (the reporter commands every job executes), `qa-test-code-coverage` (creates the coverage map this skill consumes), `scan-automation-project` (mandatory discovery), `qa-e2e-tests-reporting` (install the reporter if the project has no Testomat.io integration yet), `sync-test-cases-with-tms` (manual cases not yet in Testomat.io).
|