Protractor Flake guidance needed to rerun failed t

2019-08-20 03:18发布

问题:

Please correct my understanding for the below:

  • I've installed protractor flake
  • From the website we have 2 sets of code

My assumption

I'm pretty sure the B part needs to be given in configuration.js file of my protractor project but the A part where exactly should it be written. As a separate file should i write it and then require them in the spec file which i'm running.I need exact steps as to achieve the above

The usage section which starts with below:

    **var protractorFlake = require('protractor-flake')
    // OR using es6 modules/typescript
    import protractorFlake = require('protractor-flake')**
    and ends with **process.exit(status)**

and the parsers section which starts with module.exports = { till return [...failedSpecs]

回答1:

As per the documentation,

Add dependency

npm i protractor-flake

# or globally for easier cli usage 
npm i -g protractor-flake

Running tests

Option 1: Via the CLI:

# protractor-flake <protractor-flake-options> -- <options to be passed to protractor> 
protractor-flake --parser standard  --max-attempts=3 -- path/to/protractor.conf.js

Assuming that your conf.js file is in root directory.

Available command line options.

  • color?: string | boolean

    choose color from here or set false to disable coloring

    Usage : protractor-flake --parser standard --color=magenta --max-attempts=3 -- conf.js

  • protractorArgs?: string[]

  • protractorPath?: string: protractor location like this 'node_modules/.bin/protractor',

    Usage : protractor-flake --parser standard --protractorPath=node_modules/.bin/protractor --max-attempts=3 -- conf.js

  • parser?: string: the name of one of the included parsers

    Usage : protractor-flake --parser standard --color=magenta --max-attempts=3 -- conf.js

You can refer other options from here

Option 2: Programmatically

Create file in your root directory as flake and copy below snippet.

flake is a node script that uses protractor-flake to re-run failed tests. Note that it reruns tests at the file level, so if one test fails, it will rerun all the tests in that file. Thanks Brian Ray to this repository

#!/usr/bin/env node

/**
 *
 * usage:
 * `./flake conf.js [other protractor args]`
 */

const protractorFlake = require('protractor-flake');
// skip first two passed args (node and self)
let protractorArgs = process.argv.splice(2);
console.log(protractorArgs);

protractorFlake({
    protractorPath: 'node_modules/.bin/protractor',
    maxAttempts: 3,
    parser: 'standard',
    nodeBin: 'node',
    protractorArgs: protractorArgs
}, (status, output) => {
    process.exit(status);
});

After creating this file, for avoiding permission error's just run chmod +x ./flake

To run your test cases

./flake conf.js

If you are keeping specs in a test suite, just pass after conf.js.

./flake conf.js --suite smoke_test

Before you are running, check these Caveats