Skip to content
The docs are now organized by product area. Old links still work. Report a broken link

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

  1. 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.
  2. 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.
  3. After the tests, run qf <identifier> collect ./qualflare-results with a saved login. qf merges 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.

A case run from a native reporter shows its steps, labels and links.

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

FrameworkPackageRegistryWorks with
Playwright@qualflare/playwrightnpm@playwright/test 1.40 or later, Node.js 18 or later
Cypress@qualflare/cypressnpmCypress 12 or later, Node.js 18 or later
Jest@qualflare/jestnpmJest 29 or later, Node.js 18 or later
Vitest@qualflare/vitestnpmVitest 3 or later, Node.js 18 or later
Mocha@qualflare/mochanpmMocha 8 or later, Node.js 18 or later
Cucumber.js@qualflare/cucumberjsnpm@cucumber/cucumber 10.8 or later, Node.js 18 or later
WebdriverIO@qualflare/webdriverionpmWebdriverIO 8 or 9, Node.js 18.20 or later

Mobile

FrameworkPackageRegistryWorks with
Appium@qualflare/appiumnpmAppium through WebdriverIO 8 or 9, Node.js 18.20 or later
Detox@qualflare/detoxnpmDetox 20 and Jest 29 or later, Node.js 18 or later
Espressocom.qualflare:qualflare-espressoMaven CentralminSdk 24, androidx.test:monitor 1.4.0 or later
Maestroqualflare-maestroHomebrewMaestro 2.6.0 or later
Flutterqualflare_flutterpub.devFlutter 3.24 or later, Dart 3.5 or later

Python, Go and JVM

FrameworkPackageRegistryWorks with
pytestqualflare-pytestPyPIpytest 7.0 or later, Python 3.9 or later
Goqualflare-goHomebrew or go installGo 1.21 or later
JUnit 5com.qualflare:qualflare-junit5Maven CentralJUnit Platform 1.12 or later, Java 11 or later
TestNGcom.qualflare:qualflare-testngMaven CentralTestNG 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: qf reads 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 qf reads 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.