A Protractor plugin to automatically re-run failed test specs for Jasmine test framework.
npm install protractor-jasmine-retryA Protractor plugin to automatically re-run failed test specs for Jasmine test framework.
Inspired by protractor-retry, but added some improvements.
1. Support Windows
1. Support non parallel mode, fix #62
1. Collect failed files from the stacktrace, which is more accurate
1. Converted to a Protractor plugin, which would simplify the configuration
1. Provide more APIs to make it easier to integrate with other plugins, like
protractor-beautiful-reporter
and protractor-screenshoter-plugin
But the bad news is it only supports Jasmine framework now.
1. Install with npm/yarn
``sh`
npm install --save-dev protractor-jasmine-retry
2. Use it in the protractor config file
`js
const ProtractorJasmineRetry = require('protractor-jasmine-retry');
exports.config = {
plugins: [
ProtractorJasmineRetry(/ { maxAttempts: 2 } /),
],
afterLaunch(exitCode) {
return ProtractorJasmineRetry.afterLaunch(exitCode);
}
};
`
The plugin constructor.
- opts.maxAttempts: The max attempts before success. Default is 2opts.resultPath
- : The folder used to save the temp result file relative to the current working directory. Default is protractorFailedSpecs
This function should be called with exit code of the Protractor's afterLaunch callback and return it.
Returns the retried times, it could be 0, 1, 2 if the maxAttempts is 2.
Returns whether current run is the last attempt.
The idea is that construct a run ID using the ProtractorJasmineRetry.retriedTimes and use it to distinct the configuration of other plugins.
`jsrun_${ProtractorJasmineRetry.retriedTimes + 1}
const ProtractorJasmineRetry = require('protractor-jasmine-retry');
const runId = ; // it could be run_1, run_2, run_3...
exports.config = {
plugins: [
{
package: 'protractor-screenshoter-plugin',
screenshotPath: path.join('screenshoter', runId), // The reports can be saved in different folders
// ... ...
}
]
};
``