🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

@deepracticex/cucumber-config

Package Overview
Dependencies
Maintainers
2
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@deepracticex/cucumber-config

Shared Cucumber configuration for Deepractice projects

latest
Source
npmnpm
Version
0.0.1
Version published
Maintainers
2
Created
Source

@deepracticex/cucumber-config

Shared Cucumber/BDD configuration for Deepractice projects.

Installation

pnpm add -D @deepracticex/cucumber-config @cucumber/cucumber @cucumber/pretty-formatter

Usage

Use the createConfig helper function for easy setup:

// cucumber.cjs
const { createConfig } = require("@deepracticex/cucumber-config");

module.exports = createConfig({
  paths: ["features/**/*.feature"],
  import: ["tests/e2e/**/*.steps.ts", "tests/e2e/support/**/*.ts"],
});

This automatically creates default, dev, and ci profiles with proper structure.

With Custom Overrides

// cucumber.cjs
const { createConfig } = require("@deepracticex/cucumber-config");

module.exports = createConfig({
  paths: ["features/**/*.feature"],
  import: ["tests/e2e/**/*.ts"],
  overrides: {
    parallel: 4, // Override parallel workers
    retry: 2, // Override retry count
  },
});

Advanced Usage (Manual Profile Setup)

For custom configuration, you can manually structure profiles:

// cucumber.cjs
const baseConfig = require("@deepracticex/cucumber-config");

module.exports = {
  default: {
    ...baseConfig,
    paths: ["features/**/*.feature"],
    import: ["tests/e2e/**/*.steps.ts", "tests/e2e/support/**/*.ts"],
  },
  dev: {
    ...baseConfig.profiles.dev,
    paths: ["features/**/*.feature"],
    import: ["tests/e2e/**/*.steps.ts", "tests/e2e/support/**/*.ts"],
  },
  ci: {
    ...baseConfig.profiles.ci,
    paths: ["features/**/*.feature"],
    import: ["tests/e2e/**/*.steps.ts", "tests/e2e/support/**/*.ts"],
  },
};

Test Scripts

Add to your package.json:

{
  "scripts": {
    "test": "NODE_OPTIONS='--import tsx' cucumber-js",
    "test:dev": "NODE_OPTIONS='--import tsx' cucumber-js --profile dev",
    "test:ci": "NODE_OPTIONS='--import tsx' cucumber-js --profile ci"
  }
}

Features

  • ✅ TypeScript support via tsx
  • ✅ Async/await step definitions
  • ✅ Multiple format reporters
  • ✅ Parallel execution
  • ✅ Dev and CI profiles
  • ✅ HTML and JSON reports
  • Helper function to avoid profile configuration pitfalls

Profiles

Default Profile

  • Uses all formatters (progress-bar, HTML, JSON, pretty)
  • Parallel execution (2 workers)
  • No retry

Dev Profile

  • Pretty formatter only
  • Single worker
  • Fail fast mode

CI Profile

  • Progress and JSON formatters
  • 4 parallel workers
  • 1 retry for flaky tests

Running Tests

# Use default profile
pnpm test

# Use dev profile
pnpm test:dev

# Use ci profile
pnpm test:ci

API

createConfig(options)

Helper function to create cucumber configuration with proper profile structure.

Parameters:

  • options.paths (string[]): Feature file paths (e.g., ["features/**/*.feature"])
  • options.import (string[]): Step definition and support file paths (e.g., ["tests/e2e/**/*.ts"])
  • options.overrides (Object, optional): Additional config to override base settings

Returns: Complete cucumber configuration with default, dev, and ci profiles.

Example:

const { createConfig } = require("@deepracticex/cucumber-config");

module.exports = createConfig({
  paths: ["features/**/*.feature"],
  import: ["tests/e2e/**/*.steps.ts", "tests/e2e/support/**/*.ts"],
});

Peer Dependencies

  • @cucumber/cucumber: ^11.0.0
  • @cucumber/pretty-formatter: ^1.0.0
  • chai: ^5.0.0
  • @types/chai: ^5.0.0
  • tsx: ^4.0.0

Keywords

cucumber

FAQs

Package last updated on 09 Oct 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts