cypress-parallel-manual
v1.1.5
Published
Reduce up to 40% your Cypress suite execution time parallelizing the test run on the same machine.
Downloads
130
Maintainers
Readme
cypress-parallel-manual
Reduce up to 40% your Cypress suite execution time parallelizing the test run on the same machine....
Run your Cypress tests in parallel (locally)
How it works
🔍 - Search for existing Cypress tests
📄 - Read (if exists) a weight file, also Read (if exists) a test-distrubiton.json file
⚖️ - Split spec files into different threads
⚙️ - For each thread it runs the Cypress command you've passed as argument
📈 - Wait for all threads to finish and collects the result in a single report
Test-distribution JSON
If you want to distribute features manually to threads you should create a test-distribution.json file, also it have to been inside cypress file
NB: If you have a test-distribution.json file, it will look at this file as the first priority.
In your test-distribution.json
3 thread example demonstration :
[
[
"cypress/e2e/features1/feature1.feature",
"cypress/e2e/features1/feature2.feature"
...
],
[
"cypress/e2e/features1/feature3.feature",
"cypress/e2e/features2/feature1.feature",
...
],
[
"cypress/e2e/features2/feature2.feature",
"cypress/e2e/features3/feature1.feature",
...
]
]
How to use
Install
npm i cypress-parallel
or
yarn add cypress-parallel
Add a new script
In your package.json
add a new script:
"scripts" :{
...
"cy:run": "cypress run", // It can be any cypress command with any argument
"cy:parallel" : "cypress-parallel -s cy:run -t 2 -d <your-cypress-specs-folder> -a '\"<your-cypress-cmd-args>\"'"
...
}
With Arguments
Sample:
-a '\"--config baseUrl=http://localhost:3000\"'
Launch the new script
npm run cy:parallel
or
Run with npx (no package installation needed)
npx cy:parallel -s cy:run -t 2 -d <your-cypress-specs-folder> -a '\"<your-cypress-cmd-args>\"'
Scripts options
| Option | Alias | Description | Type | | ----------------- | ----- | ---------------------------------- | ------ | | --help | | Show help | | | --version | | Show version number | | | --script | -s | Your npm Cypress command | string | | --args | -a | Your npm Cypress command arguments | string | | --threads | -t | Number of threads | number | | --specsDir | -d | Cypress specs directory | string | | --weightsJson | -w | Parallel weights json file | string | | --reporter | -r | Reporter to pass to Cypress. | string | | --reporterOptions | -o | Reporter options | string | | --reporterModulePath | -n | Specify the reporter module path | string | | --bail | -b | Exit on first failing thread | string | | --verbose | -v | Some additional logging | string | | --strictMode | -m | Add stricter checks after running the tests | boolean |
NB: If you use cypress-cucumber-preprocesor, please disable the strictMode to avoid possible errors:
"scripts" :{
...
"cy:parallel" : "cypress-parallel -s cy:run -t 4 -m false"
...
}
NB: If your cypress-multi-reporters module is not found on the same level as your Cypress suite (e.g. in a mono-repo) then you can specify the module directory for Cypress to search within.
"scripts" :{
...
"cy:parallel" : "cypress-parallel -s cy:run -t 4 -n .../../../node_modules/cypress-multi-reporters"
...
}
Contributors
Looking for contributors.
License
MIT