gpc-for-loop
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:
Option | Default | Description |
---|---|---|
maxValue |
10 | Maximum 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 repeating |
limitToMaxValue |
true |
Whether 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.