Aller au contenu principal

Ajouter vos propres phrases

Cypress​

Installation des dépendances​

Depuis powershell ou un terminal cmd :

npm install --save-dev ts-loader

Ajout des types Typescripts​

info

Cette étape n'est nécessaire que si vous prévoyez de rajouter vos propres step_definitions.

Ajouter un nouveau fichier tsconfig.e2e.json pour inclure les types nécessaires :

tsconfig.e2e.json
{
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "./out-tsc/app",
"types": [
"cypress",
"@testing-library/cypress",
"@uuv/cypress"
]
},
"files": [
"uuv/cypress.config.ts"
],
"include": [
"src/**/*.cy.ts"
]
}

Ajout de vos propres phrases​

Créer un fichier .ts ou .js dans le dossier uuv/cucumber/step_definitions/.
Voici un exemple :

uuv/cucumber/step_definitions/my-custom-step-definitions.ts
import {Given, When, Then} from "@badeball/cypress-cucumber-preprocessor";

Given('My first custom step definition', () => {
const myVar = 'foo';
expect(myVar).to.eq('a foo');
});

Then('My second custom step definition', () => {
// Your verification
expect(true).to.eq(true);
});

Pour plus d'informations sur la mise en place de phrases cucumber, consulter cette documentation

(Optionnel) Utilisation des commandes Cypress UUV​

Lors de la rédaction de vos propres phrases, vous pouvez utiliser :

uuvGetContext(): Cypress.Chainable<Context>​

Retourne le contexte courant (élément Dom sélectionné & timeout) UUV


uuvCheckContextFocusedElement(): Cypress.Chainable<Context>​

Retourne élément Dom sélectionné dans le contexte UUV


uuvPatchContext(partOfContext: any): Chainable<Context>​

Mise à jour du contexte UUV


uuvFindByText(textToSearch: string, roleOptions: ByRoleOptions): Cypress.Chainable<JQuery<HTMLElement>>​

Recherche d'un élément à partir de son contenu textuel


uuvFindByTestId(testId: string): Cypress.Chainable<JQuery<HTMLElement>>​

Recherche d'un élément à partir de son attribut data-testid


uuvFindByRole(role: string, roleOptions: ByRoleOptions): Cypress.Chainable<JQuery<HTMLElement>>​

Recherche d'un élément à partir de son rôle accessible


uuvFindByLabelText(labelTextToSearch: string, roleOptions: ByRoleOptions): Cypress.Chainable<JQuery<HTMLElement>>​

Recherche d'un élément à partir de son libellé (idéal pour les champs de formulaire)


uuvFindAllByRole(role: string, roleOptions: ByRoleOptions): Cypress.Chainable<JQuery<HTMLElement>>​

Recherche tous les éléments correspondant à un rôle accessible


uuvFoundedElement(): Cypress.Chainable<JQuery<HTMLElement>>​

Retourne l'élément trouvé lorsqu'une recherche a été effectuée

Utilisation de vos propres phrases​

uuv/e2e/first-test.feature
Feature: Hello World

Scenario: Search - Successful case
When I visit path "https://e2e-test-quest.github.io/weather-app/"
Then I should see a title named "Welcome to Weather App"
And My second custom step definition

Playwright​

Ajout des types Typescripts​

info

Cette étape n'est nécessaire que si vous prévoyez de rajouter vos propres step_definitions.

Ajouter un nouveau fichier tsconfig.e2e.json pour inclure les types nécessaires :

tsconfig.e2e.json
{
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "./out-tsc/app",
"types": [
"@uuv/playwright"
]
},
"include": [
"uuv/cucumber/step_definitions/**/*.ts"
]
}

Ajout de vos propres phrases​

Créer un fichier .ts ou .js dans le dossier uuv/cucumber/step_definitions/.
Voici un exemple :

uuv/cucumber/step_definitions/my-custom-step-definitions.ts
import {Given, When, Then} from "@cucumber/cucumber";
import { expect } from "@playwright/test";
import { World } from "@uuv/playwright";

Given('My first custom step definition', async function () {
const myVar = 'foo';
expect(myVar).toBe('a foo');
});

Then('My second custom step definition', async function (this: World) {
// Your verification
expect(this.page.getByRole('heading', { name: 'Mon titre de page' })).toBeVisible();
});

Pour plus d'informations sur la mise en place de phrases cucumber, consulter cette documentation

Utilisation de vos propres phrases​

uuv/e2e/first-test.feature
Feature: Hello World

Scenario: Search - Successful case
When I visit path "https://e2e-test-quest.github.io/weather-app/"
Then I should see a title named "Welcome to Weather App"
And My second custom step definition