grunt-parallel-spec-runner
Plugin used to configure and launch multiple spec runners in parallel.
Getting Started
Install the module with: npm install grunt-parallel-spec-runner
The "grunt-parallel-spec-runner" task
Overview
In your project's Gruntfile, add a section named grunt-parallel-spec-runner
to the data object passed
into grunt.initConfig()
.
grunt.initConfig
parallel_spec_runner:
your_target:
options:
specs:
excludedSpecs:
isolatedSpecs:
Options
options.specs
Type: String|Array
Your Jasmine specs.
options.excludedSpecs
Type: String|Array
Specifically excludes any spec files that were included via options.spec.
options.isolatedSpecs
Type: String|Array
Specifically isolate any spec files that were included via options.spec.
This is useful to isolate specs that do not play well with others, in addition it can be faster to
isolate very large spec files so that they run in their own webdriver/browser so they don't block other specs
that run quickly. Spec files that take more than a couple of minutes to run in isolation should probably isolated.
Command-Line Options
--maxSpecRunners
Type: Number
Default: 8
The maximum number of webdrivers/browsers allowed to run in parallel.
--maxSpecFilesPerRunner
Type: Number
Default: 'Spec files are divided among the available runners e.g. Math.ceil(options.specs.length / options.maxSpecRunners)`
The maximum number of spec files to be included per runner. e.g. --maxSpecFilesPerRunner=1 is equivalent to using --isolateAllSpecs.
--isolateAllSpecs=true
Type: Boolean
Default: false
Sets the maximum number of spec files to be included per runner to 1: e.g. --maxSpecFilesPerRunner=1
This is useful to find specs that cannot run in isolation.
NOTE: Grab some coffee... this will take a while, I suggest that you pipe the output to a file. e.g. grunt test:faster --isolateAllSpecs > results.txt
options.keepalive
Type: Boolean
Default: false
Prevents _SpecRunner.*.html files from being deleted and leaves the express server running.
This is useful for debugging so that individual spec files can be run again manually
options.verbose
Type: Boolean
Default: false
Specify the --verbose options to generate the full output from all subtask.
In addition the --verbose options will cause the result summary to include the list of spec files for each runner.
options.burnin
Type: String
Specify the --burnin options to run a single spec file 100 times in parallel, the results of each run will be output to a table this can be useful for finding flaky test
NOTE: you must specify the full relative path to the spec file
e.g. grunt test:faster:firefox --burnin=rui/test/javascripts/rui/ui/notify/NotificationContainerSpec.js
Output
Includes:
- Generated runner files
- Spec files per runner
- Test per runner
- Time in seconds per runner
- Results per runner
Summary Row:
- Total spec files
- Total test run
- Total time in seconds (this value reflects what the total test time would have been if the runners were not run in parallel)
Total Execution Time: The actual elapsed time to run all test in parallel
Normal output will includes the spec files that had failures in each runner:
Verbose output includes the specs files that were included in each runner:
License
Copyright (c) 2015 Ronn McQueen
Licensed under the MIT license.