Skip to main content

Hooks

Autometa supports the following hooks: Setup, Before, After, Teardown.

Setup will be run before any scenarios. Teardown will be run after all scenarios.

Before will run before each scenario, and After runs after each scenario. Both Before and After recieve a copy of the App if it's defined.

The App argument in Before and Each will be the same as the one used by the Scenario that triggered them.

import { Setup, Before, After, Teardown } from "@autometa/cucumber-runner";

Setup(() => console.log("setting up"));

// optional description (availabbe to all hooks)
Setup("Set up the foo data", () => console.log("setting up"));

Before(async ({ apiClient }: App) => {
await apiClient.setupTestData();
});

After(async ({ apiClient }: App) => {
await apiClient.cleanupTestData();
});

TearDown(() => console.log("exiting"));

Like Steps, Hooks can be scoped. If a Hook is defined inside a Feature callback, it will only execute before tests in that feature. If a rule, only tests in that rule. If a scenario outline, only the scenarios generated by that outline etc.

Feature(() => {
Before("run only for these tests", () => {});
}, "./my-feature.ts");