This precompiler is responsible for defining macros in feature files and then executing them.
-
Defining a macro by creating macro scenario. Using
@macro(${macroName})
tag on the scenario defines a macro with the provided name and steps that are included.Note: this scenario will not be run during test execution, it is removed during pre-processing. The definition cannot contain macro execution step (see next step).
Errors are thrown when no name or steps are included in the definition, or when defining a macro with an already existing name.
-
Executing the macro. In another scenario using step
'macro ${macroName} is executed'
will replace this step with the steps in the definition of${macroName}
macro.Throws error when no
${macroName}
is provided in the step, or when no macro is defined by name provided.
See examples for the input files and an output in the tests/data
folder.
'use strict';
const compiler = require('gherking');
const Macro = require('gpc-macro');
let ast = await compiler.load('./features/src/login.feature');
ast = compiler.process(
ast,
new Macro(),
);
await compiler.save('./features/dist/login.feature', ast, {
lineBreak: '\r\n'
});
import {load, process, save} from "gherking";
import Macro = require("gpc-macro");
let ast = await load("./features/src/login.feature");
ast = process(
ast,
new Macro(),
);
await save('./features/dist/login.feature', ast, {
lineBreak: '\r\n'
});
Params:
{String} name
- The name of the macro
Returns: {Step}
- A macro step for the given macro.
This package uses debug for logging, use gpc:macro
:
DEBUG=gpc:macro* gherking ...
For detailed documentation see the TypeDocs documentation.