1.1.1 • Published 9 months ago

gpc-for-loop v1.1.1

Weekly downloads
1
License
MIT
Repository
github
Last release
9 months 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 repeat (for explicit loops, not applicable for iterations)
tagName'loop'Tag used to mark scenarios or outlines to be repeated
format'${name} (${i})'Format of the scenario or outline name after repeating
startIndex1The first index to use when repeating a scenario
limitToMaxValuetrueWhether higher repeat values than the max should be limited to the max or error should be thrown ( false )
keepTagfalseWhether the loop tags should be kept or removed (default)
iterations-An object of iteration name and values (named repeat values)

If iterations is set, the keys of the iterations object can be used as values of the loop tag, to use predefined repeat values. For example, if iterations is { "stress": 5 } then @loop(stress) means repeating 5 times.

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.