1.0.0 • Published 2 years ago

gpc-for-loop v1.0.0

Weekly downloads
1
License
MIT
Repository
github
Last release
2 years ago

gpc-for-loop

Downloads Version@npm Version@git CI Docs

A precompiler of GherKing to loop scenarios and scenario outlines to repeat them.

In the case of scenario outlines, it copies all rows of examples, resulting in iterator × rows number of scenarios when tests are run.

Usage

Identify scenario or scenario outline to be repeated and mark it with ${loopTag}(${i}) e.g. @loop(4).

The precompiler will then repeat this scenario or scenario outline for ${i} times, modifying its name according to the format.

Configurable variables and their default options:

OptionDefaultDescription
maxValue10Maximum value of iteration
tagName'loop'Tag used to mark scenarios or outlines to be repeated
format'${name} (${i})'Format of the scenario or outline name after repeatingstartIndex1The first index to use when repeating a scenario
limitToMaxValuetrueWhether higher iteration values than the max should be limited to the max or error should be thrown ( false )

See examples for the input files and output in the test/data folder.

'use strict';
const compiler = require('gherking');
const ForLoop = require('gpc-for-loop');

let ast = await compiler.load('./features/src/login.feature');
ast = compiler.process(
    ast,
    new ForLoop({
        // config
    })
);
await compiler.save('./features/dist/login.feature', ast, {
    lineBreak: '\r\n'
});
'use strict';
import {load, process, save} from "gherking";
import ForLoop = require("gpc-for-loop");

let ast = await load("./features/src/login.feature");
ast = process(
    ast,
    new ForLoop({
        // config
    })
);
await save('./features/dist/login.feature', ast, {
    lineBreak: '\r\n'
});

Other

This package uses debug for logging, use gpc:for-loop :

DEBUG=gpc:for-loop* gherking ...

For detailed documentation see the TypeDocs documentation.