A Protractor plugin to automatically re-run failed test specs for Jasmine test framework.

Downloads in past


171.0.23 years ago4 years agoMinified + gzip package size for protractor-jasmine-retry in KB


protractor-jasmine-retry CircleCI Build status
A Protractor plugin to automatically re-run failed test specs for Jasmine test framework.
Inspired by protractor-retry, but added some improvements.
  1. Support Windows
  2. Support non parallel mode, fix #62
  3. Collect failed files from the stacktrace, which is more accurate
  4. Converted to a Protractor plugin, which would simplify the configuration
  5. 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
npm install --save-dev protractor-jasmine-retry

  1. Use it in the protractor config file

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 2
  • opts.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.

Integrate with other plugins

The idea is that construct a run ID using the ProtractorJasmineRetry.retriedTimes and use it to distinct the configuration of other plugins.
const ProtractorJasmineRetry = require('protractor-jasmine-retry'); 
const runId = `run_${ProtractorJasmineRetry.retriedTimes + 1}`; // 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
            // ... ...