Reporters
Reporters in Rstest control how test results are displayed and processed.
You can use built-in reporters to get different output formats or create custom reporters to integrate with your workflow.
Using reporters
You can configure reporters through:
- CLI:
--reporter=<name>(can be used multiple times) - Config file: Add reporters to your
rstest.config.ts
More configuration options can be found in the Reporters Configuration documentation.
Reporter options for built-in reporters are defined in the TypeScript types: packages/core/src/types/reporter.ts
Built-in reporters
Rstest provides several built-in reporters:
Default reporter
The default reporter displays test run status, results, and summary information in your terminal with colored output.
Output example:
Configuration options:
summary: Whether to display summary information (default:true)logger: Custom logger function for output (default:process.stdout/process.stderr)
Verbose reporter
The verbose reporter outputs detailed information for all test cases, including successful ones. Use this when you need complete visibility into test execution.
Output example:
GitHub Actions reporter
Outputs error messages using GitHub Actions workflow commands when tests fail, enabling rich error annotations in your CI.
Auto-enablement: Automatically enabled in GitHub Actions environments.
When tests fail, the GitHub Actions reporter outputs information in a format similar to:
These outputs are parsed by GitHub Actions and generate comments at the corresponding locations.

Auto-enablement
When no reporter is manually set, Rstest automatically enables this reporter when it detects a GitHub Actions environment (process.env.GITHUB_ACTIONS is 'true').
Manual enablement
You can also manually enable this reporter:
JUnit reporter
Generates test reports in JUnit XML format, perfect for CI/CD integration and test result aggregation.
Configuration options:
outputPath: Output file path (defaults to console output)
The JUnit reporter generates XML format as follows:
The JUnit reporter maps test case execution status to JUnit test status:
pass: Test passedfail: Test failed, generates<failure>tagskip: Test skipped, generates<skipped>tagtodo: Test todo, generates<skipped>tag
Markdown reporter
The markdown reporter outputs a single markdown document to stdout, designed for agent / LLM consumption.
In agent environments, Rstest defaults to md only when you didn't explicitly configure reporters.
The default preset is normal, which is tuned for agent workflows:
- Each failure includes a repro command (
file+name) so an agent can rerun a single failing case. - Stack output defaults to
top(a stable anchor frame) instead of full stack frames. - Console output is enabled by default, but limited to keep the report size under control.
- When the number of failures exceeds
failures.max, the reporter prints a full failure list with minimal fields (repro / type / message / expected / actual), and only expands full details for the firstfailures.maxfailures.
You can further tune the output via reporter options:
Blob reporter
The blob reporter serializes test results into JSON files for later merging. This is designed for use with test sharding in CI environments, where tests are split across multiple machines and results need to be combined afterward.
Configuration options:
outputDir: Directory to store blob report files (default:.rstest-reports)
Blob files are saved to .rstest-reports/ by default. After all shards complete, use rstest merge-reports to combine them into a unified report.
See the shard configuration for a complete CI workflow example.
Custom reporters
For advanced integration needs, you can create custom reporters by implementing the Reporter interface.
More details can be found in the Reporter API reference.