Ajouter vos propres phrases
Cypress
Installation des dépendances
Depuis powershell ou un terminal cmd :
- Npm
- Yarn
npm install --save-dev ts-loader
yarn add -D ts-loader
Ajout des types Typescripts
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 :
{
"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 :
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 :
- Les commandes Cypress par défaut
- Les commandes Cypress Testing Library
- Les commandes
Cypress UVV
suivantes :
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
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
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 :
{
"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 :
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
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