angular/protractor — pull request #730 by chrismatheson (2014-04-20 12:54:52+00:00)
Title: feat(runner): addConcurrency

(runner): addConcurrency

add capability to run multiple specs/capabilities at the same time.

This is my first stab at contributing to a larger project so i was hoping i could get a little guidance because what I'm attempting is ambitious (as far as i can see) and I'm getting a little worried about the amount of code i seem to need to modify.

The basic idea is to take the original config that is passed in and reduce it down to a queue of simpler configs.

e.g.

{
specs: ['spec/first_spec.js', 'spec/seccond_spec.js'],
multiCapabilities: [{ 'browserName': 'chrome' }, { 'browserName': 'firefox' }],
concurrency: 2
}
would essentially become

Spec 1

{
specs: ['spec/first_spec.js'],
capabilities: {'browserName': 'chrome'}
}
Spec 2

{
specs: ['spec/first_spec.js'],
capabilities: {'browserName': 'firefox'}
}
Spec 3

{
specs: ['spec/seccond_spec.js'],
capabilities: {'browserName': 'chrome'}
}
Spec 4

{
specs: ['spec/seccond_spec.js'],
capabilities: {'browserName': 'firefox'}
}

these are then handed of to the runFromLauncher as usual.