cy-parallel
v1.1.0
Published
A powerful tool to run Cypress tests in parallel, optimizing test execution time.
Downloads
471
Maintainers
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 forcy-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