JSPM

cy-parallel

1.1.0
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 5
  • Score
    100M100P100Q24794F
  • License MIT

Package Exports

  • cy-parallel
  • cy-parallel/dist/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (cy-parallel) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

cy-parallel

A powerful tool to run Cypress tests in parallel, optimizing test execution time.

Table of Contents

Usage

DIR="cypress/e2e" COMMAND="npx run cypress" yarn cy-parallel

Environment Variables

  • DIR: Directory of tests (default: cypress/e2e).
  • COMMAND: Cypress command (default: npx cypress run).
  • WORKERS: Number of workers (default: CPU cores).
  • POLL: Set to true for Polling Mode; otherwise, Weighted Bucketing is used.
  • WEIGHT_PER_TEST: Weight assigned to each test (default: 1). (Only for Weighted Bucketing)
  • BASE_WEIGHT: Base weight value (default: 1). (Only for Weighted Bucketing)
  • VERBOSE: Enable logging for cy-parallel (default: true).
  • CYPRESS_LOG: Enable Cypress-specific logging (default: true).

Modes

Feel free to experiment and measure which option is faster in your case. You can use time <your_command> to measure run durations.

  • Weighted Bucketing (default) (POLL=false): Distributes tests evenly on workers.
  • Polling (POLL=true): Start workers, worker get tests from a test file queue.

Reporting

  • Merging report can be done with mochawesome
  • Install dependencies yarn add -D mochawesome mochawesome-merge mochawesome-report-generator

Example:

  • Setup mochawesome in cypress config
import { defineConfig } from 'cypress';

export default defineConfig({
  e2e: {
    setupNodeEvents(on, config) {
      // implement node event listeners here
    },
    reporter: 'mochawesome',
    video: true,
    reporterOptions: {
      reportDir: 'cypress/reports',
      overwrite: false,
      json: true,
      reportFilename: '[name]-[datetime]',
    },
  },
});
  • Merge reports mochawesome-merge cypress/reports/*.json > cypress/reports/merged-report.json

  • generate html report npx mochawesome-report-generator cypress/reports/merged-report.json -o cypress/reports/merged-html-report

Examples

Basic Usage

CYPRESS_LOG=false WORKERS=2 POLL=true yarn cy-parallel
  • Don't log Cypress logs to stdout
  • Only 2 parallel processes (Workers)
  • Use POLL mode. 2 workers pulling tests from a queue