Reporters
Qualflare reporters write test results with steps, retries and attachments to a results folder, and the Qualflare CLI uploads it as one launch.
Last updated
A Qualflare reporter is a package for your test framework that writes each run's results, with steps, per-attempt retries and attachments, to a results folder (qualflare-results by default) without a network call; qf <identifier> collect then uploads it to your project as one launch.
How a reporter works
- Install the reporter's package and register it in your framework's configuration, or, for Go and Maestro, run your tests through its command. Each reporter's page has the snippet.
- Run your tests as usual. The reporter writes one report file per process to its results folder, so the test run needs no token and no network access.
- After the tests, run
qf <identifier> collect ./qualflare-resultswith a saved login.qfmerges every report of the run into one launch, uploads screenshots by default, and adds videos and traces with--upload-artifacts video,trace.
When the folder holds reports of earlier runs, qf uploads only the newest run and prints ignored N file(s) from M earlier run(s): see Collect a directory.
The access token you save with qf login needs a creator who still holds the project role that uploads need Editor+ · project (requires the Editor role or higher in the project).
Flutter is the exception: flutter test writes its own JSON file, which qf reads, and the qualflare_flutter package adds its data to that file.
What a native reporter adds
A native reporter records what generic formats such as JUnit XML can't carry:
- Per-attempt retry history: each attempt's own status and error text, not only the final result. pytest's JUnit XML writes a retried test as repeated bare
<testcase>elements with no failure text, so that information is missing from the file. - Steps, nested ones included, with their own timing and status.
- Attachments: screenshots, logs and other files.
- Labels, links, tags, priority and parameters that a test sets about itself. A masked parameter's value is dropped before the report is written.
- CI details: the provider, build number, pull request and run link that the launch header shows.
The Go reporter also catches build failures, which produce no event in go test -json before Go 1.24, so a broken build doesn't upload as a passing run.
Choose a reporter
Every reporter is Apache-2.0 and published on npm, PyPI, Maven Central, pub.dev, the Go module proxy or the Qualflare Homebrew tap. Pick the one for the framework that runs your tests.
JavaScript and TypeScript
| Framework | Package | Registry | Works with |
|---|---|---|---|
| Playwright | @qualflare/playwright | npm | @playwright/test 1.40 or later, Node.js 18 or later |
| Cypress | @qualflare/cypress | npm | Cypress 12 or later, Node.js 18 or later |
| Jest | @qualflare/jest | npm | Jest 29 or later, Node.js 18 or later |
| Vitest | @qualflare/vitest | npm | Vitest 3 or later, Node.js 18 or later |
| Mocha | @qualflare/mocha | npm | Mocha 8 or later, Node.js 18 or later |
| Cucumber.js | @qualflare/cucumberjs | npm | @cucumber/cucumber 10.8 or later, Node.js 18 or later |
| WebdriverIO | @qualflare/webdriverio | npm | WebdriverIO 8 or 9, Node.js 18.20 or later |
Mobile
| Framework | Package | Registry | Works with |
|---|---|---|---|
| Appium | @qualflare/appium | npm | Appium through WebdriverIO 8 or 9, Node.js 18.20 or later |
| Detox | @qualflare/detox | npm | Detox 20 and Jest 29 or later, Node.js 18 or later |
| Espresso | com.qualflare:qualflare-espresso | Maven Central | minSdk 24, androidx.test:monitor 1.4.0 or later |
| Maestro | qualflare-maestro | Homebrew | Maestro 2.6.0 or later |
| Flutter | qualflare_flutter | pub.dev | Flutter 3.24 or later, Dart 3.5 or later |
Python, Go and JVM
| Framework | Package | Registry | Works with |
|---|---|---|---|
| pytest | qualflare-pytest | PyPI | pytest 7.0 or later, Python 3.9 or later |
| Go | qualflare-go | Homebrew or go install | Go 1.21 or later |
| JUnit 5 | com.qualflare:qualflare-junit5 | Maven Central | JUnit Platform 1.12 or later, Java 11 or later |
| TestNG | com.qualflare:qualflare-testng | Maven Central | TestNG 7.4.0 or later, Java 11 or later |
Without a reporter
- For a framework with no Qualflare reporter, upload the report it already writes:
qfreads 27 frameworks and 4 generic formats. See Supported formats. - Most other tools can write JUnit XML or CTRF.
- Every framework above also has its own report format that
qfreads without the reporter, with less detail: each reporter page names it.
Configure a reporter
Every reporter except qualflare_flutter, which has no options, takes its options from its framework's configuration or its command-line flags, or from QUALFLARE_* environment variables, and writes the environment and platform you set into its report. Set the environment to the environment's Identifier, not its name: see Reporter configuration.
Related
- Guides: Upload results with qf collect · Sharded runs and result directories · Upload screenshots, videos and traces
- Reference: Reporter configuration · Supported formats · Launches
- CLI and API: Authenticate with qf login · CI/CD
AI Features settings and limits
Qualflare AI usage limits by plan: Quo messages per day and month, monthly launch and case analyses, failure clusters held, resets and the project AI switch.
Reporter configuration
Every option and QUALFLARE_ environment variable the Qualflare reporters share, with defaults, and which ones reach the launch when qf uploads it.