Cypress + Cucumber

en 10 étapes

Talip Cesur

Cypress ? Cucumber ?

Qu'est-ce que c'est ?

Behavior Driven Development

  • Étant donné : Given

  • Quand : When

  • Alors : Then

  • Et : And

Étape 1 / 2 / 3

Init

// Créer un nouveau dossier
mkdir sfeir_lunch_cypress_cucumber
npm init

Installation

npm install cypress --save-dev
npm install cypress-cucumber-preprocessor --save-dev

Configurer Cucumber

Étape 4

// cypress/plugins/index.js 
const cucumber = require('cypress-cucumber-preprocessor').default

module.exports = (on, config) => {
  on('file:preprocessor', cucumber())
}

Configurer Cypress

Étape 5 / 6

// package.json
“cypress-cucumber-preprocessor”: {
   “nonGlobalStepDefinitions”: true
}
// cypress.json
{
   "testFiles": "**/*.feature"
}

Écrire des scénarios

Étape 7 / 8

// Login.feature
Feature: Login
  As a user
  I want to log into my account
  So that I can access my dashboard

  Scenario: Successful login
    Given I am on the login page
    When I enter valid credentials
    And I click the login button
    Then I should see the dashboard
// Créer les fichiers login.spec.js et Login.feature dans le dossier Test
touch login.spec.js && touch Login.feature

Mais où est le code dans tout ça ?

Écrire les steps définitions

Étape 9

// login.spec.js
import { Given, When, Then } from "cypress-cucumber-preprocessor/steps";

Given("I am on the login page", () => {
  cy.visit("/login");
});

When("I enter valid credentials", () => {
  cy.get('input[name="username"]').type("john.doe");
  cy.get('input[name="password"]').type("password123");
});

And("I click the login button", () => {
  cy.get("button[type=submit]").click();
});

Then("I should see the dashboard", () => {
  cy.url().should("include", "/dashboard");
});

Étape 10

Lancer les tests

npm run cypress
cypress open --browser chrome

ou

Talip Cesur

Talip Cesur

Support :

- Using Cypress with Cucumber in Just 10 steps par KailashPathak

 

Utiliser Cypress et Cucumber en 10 étapes

By Talip CESUR

Utiliser Cypress et Cucumber en 10 étapes

  • 46