# allure-mocha

> Allure Mocha integration

Latest version **3.14.0** (published 2026-10-19) · Apache-2.0 license · 0 weekly downloads

## Install

```sh
npm install allure-mocha
pnpm add allure-mocha
yarn add allure-mocha
bun add allure-mocha
```

## Health

**Score 75/100 (B)** — status: active.

Positive: has types; esm support; no vulnerabilities; has provenance; recently updated; high maintenance score; high quality score.

Warnings: low downloads.

## Facts

| | |
|---|---|
| Version | 3.14.0 |
| Published | 2026-10-19 |
| First published | 2014-11-10 |
| Weekly downloads | 0 |
| License | Apache-2.0 |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 1 |
| Unpacked size | 236.3 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Provenance | attested (GitHub Actions) |
| GitHub stars | 282 |
| Author | Qameta Software |
| Maintainers | qameta-bot, baev, eroshenkoam |
| Keywords | allure, html, mocha, report, reporter, test, testing, testops |

## Links

- npm: https://www.npmjs.com/package/allure-mocha
- Repository: https://github.com/allure-framework/allure-js
- Homepage: https://allurereport.org/
- npm.io page: https://npm.io/package/allure-mocha

## Dependencies (1)

- [allure-js-commons](https://npm.io/package/allure-js-commons.md) 3.14.0

## Alternatives

- [duck](https://npm.io/package/duck.md) — 4.2M weekly downloads
- [ava](https://npm.io/package/ava.md) — 560.2K weekly downloads
- [storybook-addon-module-mock](https://npm.io/package/storybook-addon-module-mock.md) — 71.7K weekly downloads
- [@ethereum-waffle/mock-contract](https://npm.io/package/@ethereum-waffle/mock-contract.md) — 40.0K weekly downloads
- [aws-elasticsearch-connector](https://npm.io/package/aws-elasticsearch-connector.md) — 37.4K weekly downloads

## Recent versions

- 3.14.0 (latest) — 2026-10-19
- 3.13.0 — 2026-09-28
- 3.12.2 — 2026-09-16
- 3.12.1 — 2026-09-09
- 3.12.0 — 2026-09-03
- 3.11.1 — 2026-09-01
- 3.11.0 — 2026-08-25
- 3.10.2 — 2026-06-26
- 3.10.1 — 2026-06-23
- 3.10.0 — 2026-06-10
- 3.9.0 — 2026-05-20
- 3.8.0 — 2026-05-11
- 3.7.2 — 2026-05-04
- 3.7.1 — 2026-04-09
- 3.7.0 — 2026-04-07
- … 87 more at https://npm.io/package/allure-mocha/versions

## README

# allure-mocha

> Allure framewok integration for Mocha framework

[<img src="https://allurereport.org/public/img/allure-report.svg" height="85px" alt="Allure Report logo" align="right" />](https://allurereport.org "Allure Report")

- Learn more about Allure Report at https://allurereport.org
- 📚 [Documentation](https://allurereport.org/docs/) – discover official documentation for Allure Report
- ❓ [Questions and Support](https://github.com/orgs/allure-framework/discussions/categories/questions-support) – get help from the team and community
- 📢 [Official annoucements](https://github.com/orgs/allure-framework/discussions/categories/announcements) – be in touch with the latest updates
- 💬 [General Discussion ](https://github.com/orgs/allure-framework/discussions/categories/general-discussion) – engage in casual conversations, share insights and ideas with the community

---

## The documentation and examples

The docs for Allure Mocha are available at [https://allurereport.org/docs/mocha/](https://allurereport.org/docs/mocha/).

Also, check out the examples at [github.com/allure-examples](https://github.com/orgs/allure-examples/repositories?q=visibility%3Apublic+archived%3Afalse+topic%3Aexample+topic%3Amocha).

## Features

- writes Allure results from the Mocha reporter lifecycle
- supports steps, attachments, metadata, retries, and runtime API calls through `allure-js-commons`
- works with Allure Report 2 and Allure Report 3

## Installation

Install `allure-mocha` using a package manager of your choice. For example:

```shell
npm install -D allure-mocha
```

Install Allure Report separately when you want to render the generated `allure-results`:

- follow the [Allure Report 2 installation guide](https://allurereport.org/docs/install/) to use the `allure` CLI
- or install Allure Report 3 with `npm install -D allure` to use `npx allure`

## Supported versions and platforms

- `mocha >= 6.2.0`
- Linux, macOS, and Windows wherever Mocha supports Node.js
- this repository is validated in CI on Node.js 20 and 22

## Usage

Enable the `allure-mocha` reporter. For example, in `.mocharc.json`:

```json
{
  "reporter": "allure-mocha"
};
```

Alternatively, use the CLI. For example:

```bash
npx mocha -R allure-mocha
```

When the test run completes, the result files will be generated in the `./allure-results` directory.

You may select another location, or further customize the reporter's behavior with [the configuration options](https://allurereport.org/docs/mocha-configuration/).

### View the report

Use Allure Report 2:

```bash
allure generate ./allure-results -o ./allure-report
allure open ./allure-report
```

Or use Allure Report 3:

```bash
npx allure generate ./allure-results
npx allure open ./allure-report
```

## Allure API

Enhance the report by utilizing the runtime API:

```js
import { describe, it } from "mocha";
import * as allure from "allure-js-commons";

describe("signing in with a password", () => {
  it("should sign in with a valid password", async () => {
    await allure.description("The test checks if an active user with a valid password can sign in to the app.");
    await allure.epic("Signing in");
    await allure.feature("Sign in with a password");
    await allure.story("As an active user, I want to successfully sign in using a valid password");
    await allure.tags("signin", "ui", "positive");
    await allure.issue("https://github.com/allure-framework/allure-js/issues/1", "ISSUE-1");
    await allure.owner("eroshenkoam");
    await allure.parameter("browser", "chrome");

    const user = await allure.step("Prepare the user", async () => {
      return await createAnActiveUserInDb();
    });

    await allure.step("Make a sign-in attempt", async () => {
      await allure.step("Navigate to the sign in page", async () => {
        // ...
      });

      await allure.step("Fill the sign-in form", async (stepContext) => {
        await stepContext.parameter("login", user.login);
        await stepContext.parameter("password", user.password, "masked");

        // ...
      });

      await allure.step("Submit the form", async () => {
        // ...
        // const responseData = ...

        await allure.attachment("response", JSON.stringify(responseData), { contentType: "application/json" });
      });
    });

    await allure.step("Assert the signed-in state", async () => {
      // ...
    });
  });
});
```

More details about the API are available at [https://allurereport.org/docs/mocha-reference/](https://allurereport.org/docs/mocha-reference/).

### Sync API

When your test code uses synchronous helpers or matcher integrations, you can use the sync facade from `allure-js-commons/sync`.

```js
import * as allure from "allure-js-commons/sync";

allure.step("check result", () => {
  allure.parameter("mode", "sync");
});
```

The sync facade is strict-sync only: `allure.step()` must finish synchronously and must not return a `Promise`.

---
_Source: https://npm.io/package/allure-mocha · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
