npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

cucumberjs-qase-reporter

v2.4.4

Published

Qase TMS CucumberJS Reporter

Downloads

6,904

Readme

Qase TestOps CucumberJS Reporter

License npm downloads

Qase CucumberJS Reporter enables seamless integration between your CucumberJS tests and Qase TestOps, providing automatic test result reporting, test case management, and comprehensive test analytics.

Features

  • Link automated tests to Qase test cases by ID using Gherkin tags
  • Auto-create test cases from your Gherkin scenarios
  • Report test results with rich metadata (fields, attachments, steps)
  • Native Gherkin step reporting (Given/When/Then automatically mapped)
  • Multi-project reporting support
  • Flexible configuration (file, environment variables, CucumberJS formatter)
  • Network Profiler for automatic HTTP request capture

Installation

npm install --save-dev cucumberjs-qase-reporter

Quick Start

1. Create qase.config.json in your project root:

{
  "mode": "testops",
  "testops": {
    "project": "YOUR_PROJECT_CODE",
    "api": {
      "token": "YOUR_API_TOKEN"
    }
  }
}

2. Add Qase ID tag to your Gherkin scenario:

Feature: User Authentication

  @QaseID=1
  Scenario: Successful login
    Given I am on the login page
    When I enter valid credentials
    Then I should be logged in

3. Run your tests with the reporter:

QASE_MODE=testops npx cucumber-js -f cucumberjs-qase-reporter

Configuration

The reporter is configured via (in order of priority):

  1. CucumberJS CLI flags (highest priority)
  2. Environment variables (QASE_*)
  3. Config file (qase.config.json)

CucumberJS Formatter Configuration

Run CucumberJS with the Qase formatter:

npx cucumber-js -f cucumberjs-qase-reporter features -r step_definitions

Or configure in your cucumber.js profile:

// cucumber.js
module.exports = {
  default: {
    format: ['progress', 'cucumberjs-qase-reporter'],
    requireModule: ['ts-node/register'],
    require: ['step_definitions/**/*.js'],
  },
};

Minimal Configuration

| Option | Environment Variable | Description | |--------|---------------------|-------------| | mode | QASE_MODE | Set to testops to enable reporting | | testops.project | QASE_TESTOPS_PROJECT | Your Qase project code | | testops.api.token | QASE_TESTOPS_API_TOKEN | Your Qase API token |

Example qase.config.json

{
  "mode": "testops",
  "fallback": "report",
  "testops": {
    "project": "YOUR_PROJECT_CODE",
    "api": {
      "token": "YOUR_API_TOKEN"
    },
    "run": {
      "title": "CucumberJS Automated Run"
    },
    "batch": {
      "size": 100
    }
  },
  "report": {
    "driver": "local",
    "connection": {
      "local": {
        "path": "./build/qase-report",
        "format": "json"
      }
    }
  }
}

Full configuration reference: See qase-javascript-commons for all available options including logging, status mapping, execution plans, and more.

Usage

Link Tests with Test Cases

Associate your scenarios with Qase test cases using Gherkin tags:

Single ID:

Feature: User Authentication

  @QaseID=1
  Scenario: Valid login
    Given I am on the login page
    When I enter valid credentials
    Then I should see the dashboard

Multiple IDs:

Feature: User Authentication

  @QaseID=1,2,3
  Scenario: Multiple test case coverage
    Given I am on the login page
    When I enter valid credentials
    Then I should see the dashboard

Note: Unlike other frameworks, CucumberJS uses Gherkin tags (@QaseID=N) instead of programmatic wrapper functions. Test case linking happens at the scenario level in feature files.

Add Metadata

Enhance your scenarios with additional information using tags:

Using Gherkin Tags:

Feature: User Authentication

  @QaseID=1
  @QaseTitle=Custom Test Title
  @QaseFields={"severity":"critical","priority":"high","layer":"e2e"}
  Scenario: Login with metadata
    Given I am on the login page
    When I enter valid credentials
    Then I should see the dashboard

Programmatic Metadata (in Before hooks):

// support/hooks.js
const { Before } = require('@cucumber/cucumber');

Before(function() {
  // Note: programmatic metadata requires custom implementation
  // Most metadata is set via Gherkin tags
});

Ignore Tests

Exclude specific scenarios from Qase reporting (scenario still runs, but results are not sent):

Feature: User Authentication

  @QaseIgnore
  Scenario: Test not reported to Qase
    Given I am on the login page
    When I enter valid credentials
    Then I should see the dashboard

Test Result Statuses

| CucumberJS Result | Qase Status | |-------------------|-------------| | Passed | Passed | | Failed | Failed | | Pending | Blocked | | Skipped | Skipped | | Undefined | Blocked | | Ambiguous | Failed |

For more usage examples, see the Usage Guide.

Running Tests

Basic test execution with reporter:

QASE_MODE=testops npx cucumber-js -f cucumberjs-qase-reporter

With specific features:

QASE_MODE=testops npx cucumber-js -f cucumberjs-qase-reporter features/login.feature

With tags filtering:

npx cucumber-js -f cucumberjs-qase-reporter --tags "@smoke and not @skip"

Using cucumber.js profile:

npx cucumber-js --profile default

Note: The reporter formatter should be specified with -f cucumberjs-qase-reporter flag or in your cucumber.js configuration.

Network Profiler

The Network Profiler automatically captures outgoing HTTP requests made during test execution and reports them as REQUEST-type steps in Qase TestOps.

Enable in qase.config.json:

{
  "profilers": ["network"],
  "networkProfiler": {
    "skip_domains": ["analytics.example.com"],
    "track_on_fail": true
  }
}

| Option | Description | Default | |--------|-------------|---------| | profilers | Array of profilers to enable. Use ["network"] for HTTP capture | [] | | networkProfiler.skip_domains | Domains to exclude from profiling | [] | | networkProfiler.track_on_fail | Capture response body for failed requests (status >= 400) | true |

Requests to qase.io are always excluded automatically.

Requirements

  • Node.js >= 14
  • @cucumber/cucumber >= 8.0.0

Documentation

| Guide | Description | |-------|-------------| | Usage Guide | Complete usage reference with all tags and patterns | | Attachments | Adding screenshots, logs, and files to test results | | Steps | Understanding native Gherkin step mapping | | Multi-Project Support | Reporting to multiple Qase projects | | Upgrade Guide | Migration guide for breaking changes |

Examples

See the examples directory for complete working examples.

License

Apache License 2.0. See LICENSE for details.