cy-parallel
Version:
A powerful tool to run Cypress tests in parallel, optimizing test execution time.
85 lines (62 loc) • 2.37 kB
Markdown
# cy-parallel
A powerful tool to run Cypress tests in parallel, optimizing test execution time.
## Table of Contents
- [Usage](#usage)
- [Environment Variables](#environment-variables)
- [Modes](#modes)
- [Reporting](#reporting)
- [Examples](#examples)
- [Basic Usage](#basic-usage)
# [Usage](#usage)
```
DIR="cypress/e2e" COMMAND="npx run cypress" yarn cy-parallel
```
# [Environment Variables](#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](#examples)
## [Basic Usage](#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