About qa-e2e-tests-reporting
A skill for configuring Testomat.io reporting in automated test projects and importing test results and test code into its TMS. It covers multiple languages and frameworks, along with credential setup, verification, and optional artifact storage.
Key features
- 01Detect project language and test framework
- 02Configure Testomat.io reporters
- 03Import tests and sync IDs
- 04Verify test run results
- 05Configure S3 artifacts on request
Use cases
- 01Add Testomat.io reporting to automated tests
- 02Sync test structure with Testomat.io TMS
- 03Confirm uploaded test runs are retrievable
- 04Store test screenshots, videos, or logs on request
MCP support
When Testomat.io MCP is enabled, its run-management tools can retrieve the latest test run to verify that results were received.
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ testomatio/ skills --skill qa-e2e-tests-reportingAfter installing, type/qa-e2e-tests-reportingin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
references/TESTOMATIO_ARTIFACTS.mdTESTOMATIO_HTML_REPORT.mdTESTOMATIO_REPORTERS_CONFIG.mdDetails
From the project READMETestomat.io Reporter Setup
Install and configure the Testomat.io reporter in an automation project, then push test results to the Testomat.io TMS.
Step 1: Detect Language & Framework
- Detect the language from the project manifest (
package.json,pyproject.toml/requirements.txt,pom.xml/build.gradle,*.csproj,composer.json,Gemfile). - 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 inpom.xml. - No native reporter for the stack (C#, PHP, Ruby, Go, etc.): use JUnit XML import (Step 4).
Step 2: Configure Credentials
- Check
.envfor aTESTOMATIOAPI key. If present, use it. - If missing, add a placeholder line to
.env:
TESTOMATIO=tstmt_xxxxx
- Ask the user to replace the placeholder with their "Project Reporting API key" themselves — never ask them to paste the key into chat.
Message to the user:
✅ Added `TESTOMATIO=tstmt_xxxxx` placeholder to .env
To activate reporting:
1. Go to Testomat.io → your project → Settings → Project
(https://app.testomat.io/projects/<project-id>/settings/project)
2. Copy "Project Reporting API key"
3. Replace `tstmt_xxxxx` in .env with your actual key
4. Run tests: TESTOMATIO=tstmt_xxxxx npx <test-command>
Step 3: Install & Configure Reporter
Pick the section for the detected language and framework.
JavaScript / TypeScript
Use @testomatio/reporter:
npm install @testomatio/reporter --save-dev
Playwright — playwright.config.ts or playwright.config.js:
reporter: [
['@testomatio/reporter/playwright'],
// other reporters...
],
CodeceptJS — codecept.conf.js or codecept.config.js:
plugins: {
testomatio: {
enabled: true,
require: '@testomatio/reporter/codecept',
}
}
WebdriverIO — wdio.conf.js:
import testomatio from '@testomatio/reporter/webdriver';
exports.config = {
// ...
reporters: [
[testomatio, { apiKey: process.env.TESTOMATIO }],
],
};
Jest — jest.config.js or jest.config.ts:
module.exports = {
reporters: ['default', ['@testomatio/reporter/jest', { apiKey: process.env.TESTOMATIO }]],
};
Mocha — run with CLI flags:
mocha --reporter @testomatio/reporter/mocha --reporter-options apiKey=tstmt_xxx
- Run commands and more config options: ./references/TESTOMATIO_REPORTERS_CONFIG.md
- Docs: Testomat.io NodeJS Frameworks
Python
Use pytestomatio for pytest, robot-framework-reporter for Robot Framework.
- Use
pip3if Python 2.x and 3.x coexist.
pytest:
pip install pytestomatio
# Run and report tests
pytest --testomatio report
Robot Framework:
pip install robot-framework-reporter
# Run and report tests
robot --listener Testomatio.Report path/to/tests
Docs: Testomat.io Python Reporting
Java (JUnit, TestNG, Cucumber, Karate)
Use the io.testomat Java reporters.
- Ask the user to set the API key before running tests, then verify it is set and starts with
tstmt_:
export TESTOMATIO=<tstmt_api_key>
- Add the dependency for the framework in use:
<dependency>
<groupId>io.testomat</groupId>
<artifactId>java-reporter-junit</artifactId>
<version>{LATEST_STABLE_VERSION}</version>
</dependency>
Artifact IDs: java-reporter-junit, java-reporter-testng, java-reporter-cucumber, java-reporter-karate.
- Run tests:
mvn clean test
- Scan the output for a run ID. If found, show the link:
View results: https://app.testomat.io/projects/{project-id}/runs/{run-id}
Docs: Testomat.io Java/JUnit Reporting
Step 4: Import Automated Tests to Testomat.io TMS
Import test source code into Testomat.io to see test structure and enable codebase-TMS synchronization.
Docs: Testomat.io Import Overview
JavaScript / TypeScript
Use the check-tests CLI:
npx check-tests@latest <framework> "<glob-pattern>" [options]
| Framework | Example |
|---|---|
| Playwright | npx check-tests@latest Playwright "tests/**/*.spec.js" |
| CodeceptJS | npx check-tests@latest CodeceptJS "tests/**_test.js" |
| Cypress | npx check-tests@latest cypress "cypress/e2e/**/*.js" |
| Jest | npx check-tests@latest Jest "tests/**/*.test.js" |
| Mocha | npx check-tests@latest mocha "test/**/*_test.js" |
| WebdriverIO | npx check-tests@latest webdriverio "test/**/*.js" |
Options:
--typescript— for TypeScript projects:npx check-tests@latest Playwright "tests/**/*.spec.ts" --typescript--update-ids— sync and auto-assign test IDs in source code:npx check-tests@latest CodeceptJS "tests/**_test.js" --update-ids
Python
pytest — sync tests with Testomat.io:
pytest --testomatio sync
Robot Framework — import tests:
robot --listener Testomatio.Import path/to/tests
Java (JUnit, TestNG)
Use the testomatio.jar CLI. Re-run after every test execution.
- Run only from the project root:
cd <project-root>
export TESTOMATIO=tstmt_xxxxx && \
curl -L -O https://github.com/testomatio/java-check-tests/releases/latest/download/testomatio.jar && \
java -jar testomatio.jar sync
Commands:
import— import test code to Testomat.io (dry-run without API key).clean-ids— import tests without system ids.sync— import tests and pull IDs into source code (alias:update-ids).
JUnit XML (C#, PHP, Ruby, Go, etc.)
For stacks without a native reporter, generate a JUnit XML report, then import it.
- NUnit (C#):
dotnet test --logger:"trx;LogFileName=results.xml"— convert to JUnit XML if needed. - PHPUnit (PHP):
./vendor/bin/phpunit --log-junit=results.xml - RSpec (Ruby):
rspec --format json --out results.json— then convert to JUnit XML.
Import to Testomat.io:
npx check-tests@latest junit "path/to/results.xml"
# Multiple XML files
npx check-tests@latest junit "results/*.xml"
Step 5: Verify Setup
Run the tests with the reporter enabled:
TESTOMATIO=tstmt_xxxxx npx <your-test-command>
Via Testomat.io MCP (preferred, if enabled)
- After the run, fetch the latest run via MCP to confirm data was received.
- Success indicators: a new run ID appears in the logs; run status shows passed/failed as expected; the run is retrievable by its ID.
- Setup is complete when the new run is fetchable via MCP.
- MCP tools: Testomat.io MCP Run Management
Debug Mode (alternative)
- Capture reporter output locally for only 1-2 tests to verify data is generated correctly before sending:
DEBUG=@testomatio/reporter:pipe:testomatio npx <your-test-command>
- Read the execution logs to confirm the reporter is enabled and configured.
- Docs: Testomat.io Debugging Logs
Step 6: Configure Artifacts (only on explicit request)
Store screenshots, videos, traces, and logs in S3-compatible storage alongside test results.
- Only perform this step if the user explicitly asks for artifacts configuration (or mentions saving screenshots, videos, traces, logs).
- Prerequisite: first test report executed successfully.
- Check
.envfor existing S3 credentials (S3_ACCESS_KEY_ID,S3_BUCKET,S3_REGION). If present, skip to verification.
Create S3 Bucket (if needed)
- Recommended: one bucket per project.
- Guide the user through their provider, based on official documentation:
| Provider | Link |
|---|---|
| AWS S3 | https://s3.console.aws.amazon.com/s3 |
| DigitalOcean | https://cloud.digitalocean.com/spaces |
| Google Cloud Storage | https://console.cloud.google.com/storage |
| Cloudflare R2 | https://dash.cloudflare.com/ |
| Minio | Self-hosted or cloud instance |
- The user obtains the Access Key ID and Secret Access Key from the provider.
Option A: Testomat.io UI (recommended)
- The agent cannot access Testomat.io project settings — the user configures this manually:
- Open
https://app.testomat.io/projects/<project-id>/settings/artifacts - Enable the "Share credentials" toggle.
- Enter Access Key ID, Secret Access Key, bucket name, region, and endpoint (endpoint only for non-AWS providers).
- Open
Option B: Environment Variables
Add S3 credentials to .env or the CI pipeline:
# Required for all providers
S3_ACCESS_KEY_ID=your_access_key
S3_SECRET_ACCESS_KEY=your_secret_key
S3_BUCKET=your_bucket_name
S3_REGION=us-west-1
# Optional: for non-AWS providers (DigitalOcean, Minio, Cloudflare R2, GCS)
S3_ENDPOINT=https://your-endpoint-url
# Optional: private access mode (recommended)
TESTOMATIO_PRIVATE_ARTIFACTS=1
Cloudflare R2 example:
S3_ACCESS_KEY_ID=xxx
S3_SECRET_ACCESS_KEY=xxx
S3_BUCKET=testomatio-artifacts
S3_REGION=auto
S3_ENDPOINT=https://<account-id>.r2.cloudflarestorage.com
S3_FORCE_PATH_STYLE=true
- Disable uploads:
TESTOMATIO_DISABLE_ARTIFACTS=1 - Provider examples (AWS, DigitalOcean, Minio, GCS): ./references/TESTOMATIO_ARTIFACTS.md
- More options: Testomat.io Artifacts
Verify Artifacts
- Run tests that produce screenshots, videos, or traces:
TESTOMATIO=tstmt_xxxxx npx <your-test-command> - Ask the user to open
https://app.testomat.io/projects/<project-id>/runsand click a test with artifacts (failed tests typically have screenshots). - Success: artifacts appear in the test results ("Artifacts" section or attachment icon) and are clickable; Playwright traces open in the trace viewer.
References
| Description | Link |
|---|---|
| Getting started | https://docs.testomat.io/getting-started/ |
| Reporter configuration | https://docs.testomat.io/test-reporting/frameworks/ |
| Framework config snippets | ./references/TESTOMATIO_REPORTERS_CONFIG.md |
| Python test reporting | https://docs.testomat.io/test-reporting/python/ |
| Python Robot Framework | https://github.com/testomatio/robot-framework-reporter/blob/master/README.md |
| Java/JUnit reporting | https://docs.testomat.io/test-reporting/junit/ |
| HTML pipe | ./references/TESTOMATIO_HTML_REPORT.md |
| Debug pipe | TESTOMATIO_DEBUG=1 <test-command> |
| Artifacts (S3) | ./references/TESTOMATIO_ARTIFACTS.md |