Skip to content

Commit

Permalink
feat(testrunner): support --repeat CLI flag to repeat tests (#1828)
Browse files Browse the repository at this point in the history
This allows you to run `npm run cunit -- --repeat 10` to run
tests multiple times.
  • Loading branch information
aslushnikov authored Apr 17, 2020
1 parent d0b8710 commit 51b8685
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 0 deletions.
7 changes: 7 additions & 0 deletions test/test.js
Original file line number Diff line number Diff line change
Expand Up @@ -197,6 +197,13 @@ function collect(browserNames) {
testRunner.focusMatchingTests(new RegExp(filter, 'i'));
}

const repeatArgIndex = process.argv.indexOf('--repeat');
if (repeatArgIndex !== -1) {
const repeat = parseInt(process.argv[repeatArgIndex + 1], 10);
if (!isNaN(repeat))
testRunner.repeatAll(repeat);
}

return testRunner;
}

Expand Down
5 changes: 5 additions & 0 deletions utils/testrunner/TestCollector.js
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,7 @@ class TestCollector {
this._api = {};

this._currentSuite = new Suite(null, '', new Location());
this._rootSuite = this._currentSuite;

this._api.describe = specBuilder(this._suiteModifiers, this._suiteAttributes, (specs, name, suiteCallback, ...suiteArgs) => {
const location = Location.getCallerLocation();
Expand Down Expand Up @@ -223,6 +224,10 @@ class TestCollector {
suites() {
return this._suites;
}

rootSuite() {
return this._rootSuite;
}
}

module.exports = { TestCollector, specBuilder, FocusedFilter, Repeater };
4 changes: 4 additions & 0 deletions utils/testrunner/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,10 @@ class DefaultTestRunner {
}
}

repeatAll(repeatCount) {
this._repeater.repeat(this._collector.rootSuite(), repeatCount);
}

async run() {
let reporter = null;

Expand Down

0 comments on commit 51b8685

Please sign in to comment.