@badeball/cypress-cucumber-preprocessor
v21.0.3
Published
[![Build status](https://github.com/badeball/cypress-cucumber-preprocessor/actions/workflows/build.yml/badge.svg)](https://github.com/badeball/cypress-cucumber-preprocessor/actions/workflows/build.yml) [![Npm package weekly downloads](https://badgen.net/n
Downloads
1,538,404
Maintainers
Readme
cypress-cucumber-preprocessor
Quick start • Documentation • Contributing
This preprocessor aims to provide a developer experience and behavior similar to that of Cucumber, to Cypress.
:information_source: The repositor has recently moved from
github.com/TheBrainFamily
togithub.com/badeball
. Read more about the transfer of ownership here.
Installation
$ npm install @badeball/cypress-cucumber-preprocessor
Introduction
The preprocessor (with its dependencies) parses Gherkin documents and allows you to write tests as shown below.
# cypress/e2e/duckduckgo.feature
Feature: duckduckgo.com
Scenario: visiting the frontpage
When I visit duckduckgo.com
Then I should see a search bar
// cypress/e2e/duckduckgo.ts
import { When, Then } from "@badeball/cypress-cucumber-preprocessor";
When("I visit duckduckgo.com", () => {
cy.visit("https://www.duckduckgo.com");
});
Then("I should see a search bar", () => {
cy.get("input").should(
"have.attr",
"placeholder",
"Search the web without being tracked"
);
});
Building
Building can be done once using:
$ npm run build
Or upon file changes with:
$ npm run watch
There are multiple types of tests, all ran using npm scripts:
$ npm run test:fmt
$ npm run test:types
$ npm run test:unit
$ npm run test:integration # make sure to build first
$ npm run test # runs all of the above
Attribution
A special thanks goes out to Łukasz Gandecki for developing and maintaning the cypress-cucumber integration before me, in addition to all other contributors. Some of the work has partially been sponsored by Klaveness Digital.