Skip to content
Allure report logoAllure Report
Main Navigation ModulesDocumentationStarter Project

English

Español

English

Español

Appearance

Sidebar Navigation

Allure 3

Install & Upgrade

Install Allure

Upgrade Allure

Configure

Create Reports

How to generate a report

How to view a report

Improving readability of your test reports

Improving navigation in your test report

Reading Allure charts

Migrate from Allure 2

Allure 2

Install & Upgrade

Install for Windows

Install for macOS

Install for Linux

Install for Node.js

Upgrade Allure

Create Reports

How to generate a report

How to view a report

Improving readability of your test reports

Improving navigation in your test report

Features

Agent Mode

Test steps

Attachments

Test statuses

Assertion diffs

Sorting and filtering

Environments

Multistage Builds

Categories

Visual analytics

Test stability analysis

History and retries

Quality Gate

Global Errors and Attachments

Timeline

Export to CSV

Export metrics

Guides

JUnit 5 parametrization

JUnit 5 & Selenide: screenshots and attachments

JUnit 5 & Selenium: screenshots and attachments

Setting up JUnit 5 with GitHub Actions

Pytest parameterization

Pytest & Selenium: screenshots and attachments

Pytest & Playwright: screenshots and attachments

Pytest & Playwright: videos

Playwright parameterization

Publishing Reports to GitHub Pages

Allure Report 3: XCResults Reader

How it works

Overview

Glossary

Test result file

Container file

Categories file

Environment file

Executor file

History files

Test Identifiers

Integrations

Azure DevOps

Bamboo

GitHub Action

Gradle

Jenkins

JetBrains IDEs

Maven

TeamCity

Visual Studio Code

Frameworks

AVA

Getting started

Configuration

Reference

Axios

Getting started

Configuration

Reference

Behat

Getting started

Configuration

Reference

Behave

Getting started

Configuration

Reference

Bun

Getting started

Configuration

Reference

Chai

Getting started

Reference

Codeception

Getting started

Configuration

Reference

CodeceptJS

Getting started

Configuration

Reference

Cucumber.js

Getting started

Configuration

Reference

Cucumber-JVM

Getting started

Configuration

Reference

Cucumber.rb

Getting started

Configuration

Reference

Cypress

Getting started

Configuration

Reference

Fetch

Getting started

Configuration

Reference

Go

Getting started

Configuration

Reference

Jasmine

Getting started

Configuration

Reference

JBehave

Getting started

Configuration

Reference

Jest

Getting started

Configuration

Reference

JUnit 4

Getting started

Configuration

Reference

JUnit 5

Getting started

Configuration

Reference

Mocha

Getting started

Configuration

Reference

Newman

Getting started

Configuration

Reference

Node.js Test Runner

Getting started

Configuration

Reference

NUnit

Getting started

Configuration

Reference

PHPUnit

Getting started

Configuration

Reference

Playwright

Getting started

Configuration

Reference

Playwright Java

Getting started

Configuration

Reference

pytest

Getting started

Configuration

Reference

Pytest-BDD

Getting started

Configuration

Reference

Reqnroll

Getting started

Configuration

Reference

REST Assured

Getting started

Configuration

Robot Framework

Getting started

Configuration

Reference

Rust Cargo Test

Getting started

Configuration

Reference

RSpec

Getting started

Configuration

Reference

SpecFlow

Getting started

Configuration

Reference

Spock

Getting started

Configuration

Reference

TestCafe

Getting started

Configuration

Reference

TestNG

Getting started

Configuration

Reference

Vitest

Getting started

Configuration

Reference

WebdriverIO

Getting started

Configuration

Reference

xUnit.net

Getting started

Configuration

Reference

On this page

Allure TestCafe configuration ​

The Allure TestCafe reporter accepts configuration options that control where results are written, how steps are captured, how links are formatted, and what additional data is included in the report.

Configuration is only available when using the runner API. When registering the reporter by name in a config file or on the CLI, the reporter runs with default settings.

To set options, pass a configuration object to createAllureTestCafeReporter():

js
const createTestCafe = require("testcafe");
const createAllureTestCafeReporter = require("testcafe-reporter-allure-official");
const { createAllureTestPlanFilter } = require("testcafe-reporter-allure-official/testplan");
const { Status } = require("allure-js-commons");
const os = require("node:os");

(async () => {
  const testcafe = await createTestCafe();

  try {
    await testcafe
      .createRunner()
      .src(["tests/**/*.test.js"])
      .browsers(["chromium:headless"])
      .filter(createAllureTestPlanFilter())
      .reporter(
        createAllureTestCafeReporter({
          resultsDir: "allure-results",
          captureActionsAsSteps: true,
          links: {
            issue: {
              nameTemplate: "Issue #%s",
              urlTemplate: "https://issues.example.com/%s",
            },
            tms: {
              nameTemplate: "TMS #%s",
              urlTemplate: "https://tms.example.com/%s",
            },
            jira: {
              urlTemplate: (v) => `https://jira.example.com/browse/${v}`,
            },
          },
          categories: [
            {
              name: "Known flaky tests",
              messageRegex: /timeout/,
              matchedStatuses: [Status.BROKEN],
            },
          ],
          environmentInfo: {
            os_platform: os.platform(),
            os_release: os.release(),
            node_version: process.version,
          },
          globalLabels: [{ name: "layer", value: "e2e" }],
        }),
      )
      .run();
  } finally {
    await testcafe.close();
  }
})();

resultsDir ​

Path to the directory where the reporter will save test results, see How it works. If the directory does not exist, it will be created. Defaults to allure-results.

captureActionsAsSteps ​

If true (the default), the reporter automatically captures TestCafe actions and assertions as Allure steps. The following actions are captured:

  • Navigation: t.navigateTo()
  • Interactions: t.click(), t.doubleClick(), t.rightClick(), t.hover(), t.drag(), t.dragToElement()
  • Input: t.typeText(), t.selectText(), t.selectTextAreaContent(), t.pressKey(), t.setFilesToUpload(), t.clearUpload()
  • Scrolling: t.scroll(), t.scrollBy(), t.scrollIntoView()
  • Frames and roles: t.switchToIframe(), t.useRole()
  • Screenshots: t.takeScreenshot(), t.takeElementScreenshot()
  • HTTP: t.request()
  • Waits: t.wait()
  • Assertions: t.expect(...).eql(), t.expect(...).ok(), and other expect chains
  • Custom actions: t.runCustomAction()

Automatic steps are nested under any enclosing explicit step created with allure.step(). When an assertion fails, the corresponding step is marked as failed with actual and expected values in the status details.

Set to false to disable automatic step capture:

js
createAllureTestCafeReporter({
  captureActionsAsSteps: false,
});

links ​

A mapping of templates that can be used to construct full URLs from short identifiers.

For each link type (see allure.link()), you can specify the following:

  • nameTemplate — a template or a function for generating the link name when it is not provided.
  • urlTemplate — a template or a function for generating the link address when a short identifier is passed instead of a full URL.

The templates can be strings (with %s where the identifier should be placed) or functions (accepting the identifier and returning the result).

For example, with the configuration above, await allure.issue("AUTH-123", "Related issue") will produce a link with the name "Related issue" and the address https://issues.example.com/AUTH-123. If no name is passed, it defaults to Issue #AUTH-123.

Link templates can also be set via meta keys. A value in "allure.link.<type>" meta is treated as a raw URL or identifier that is processed through the matching template, if one is configured.

categories ​

Define custom categories that will be used to distinguish test results by their errors; see Categories.

This setting is an array, each item being an object representing one custom category. The objects may have the following properties:

  • name — a category name.
  • messageRegex — a regular expression that the test result's message should match.
  • traceRegex — a regular expression that the test result's trace should match.
  • matchedStatuses — an array of statuses that the test result should be one of.
  • flaky — whether the test result should be marked as flaky.
  • description — a description shown in the categories panel for this category. Markdown is supported.
  • descriptionHtml — an HTML description shown in the categories panel for this category.

This format is based on Allure's legacy categories file and is supported by all Allure Report versions. Allure Report 3 also provides a richer native category configuration — with label-based matching, grouping controls, transitions, and more — that is set directly in the Allure Report config file rather than in the reporter.

environmentInfo ​

Key-value pairs that will be displayed on the report's main page, see Environment information.

globalLabels ​

Labels applied to every test result in the run. Useful for tagging all results with a layer, team, or environment identifier without repeating it in every test.

Can be provided as an array of { name, value } label objects:

js
createAllureTestCafeReporter({
  globalLabels: [
    { name: "layer", value: "e2e" },
    { name: "team", value: "frontend" },
  ],
});

Or as a plain object mapping label names to values. A name can map to a single string or an array of strings:

js
createAllureTestCafeReporter({
  globalLabels: {
    layer: "e2e",
    team: "frontend",
  },
});

createAllureTestPlanFilter ​

createAllureTestPlanFilter() accepts one optional option:

  • cwd — the directory used to resolve a relative ALLURE_TESTPLAN_PATH. Use this in monorepos where TestCafe does not run from the package root:
js
const { createAllureTestPlanFilter } = require("testcafe-reporter-allure-official/testplan");

module.exports = {
  // ...
  filter: createAllureTestPlanFilter({ cwd: __dirname }),
};
Pager
Previous pageGetting started
Next pageReference
Powered by

Subscribe to our newsletter

Get product news you actually need, no spam.

Subscribe
Allure TestOps
  • Overview
  • Why choose us
  • Cloud
  • Self-hosted
  • Success Stories
Company
  • Documentation
  • Blog
  • About us
  • Contact
  • Events
© 2026 Qameta Software Inc. All rights reserved.
A Markdown version of this page is available at /docs/testcafe-configuration.md