Documentation Frappe Framework

Frappe Framework

Tests d’intégration UI

Cypress, sans Selenium, sert aux tests d’intégration d’interface. Les fichiers JavaScript vivent dans cypress/integration.

1 min de lectureMis à jour le Source : docs.frappe.io

À quoi sert Cypress

Les tests d’intégration s’écrivent avec Cypress, un cadre NodeJS de bout en bout qui ne s’appuie pas sur Selenium. Créez un fichier .js dans le dossier cypress/integration.

Exemple : créer une tâche

Le test se connecte en Administrator, ouvre le bureau, crée une tâche (ToDo), vérifie l’état non enregistré, valide, puis retrouve la ligne dans la liste.

javascript
context("ToDo", () => {
  before(() => {
    cy.login("Administrator", "admin");
    cy.visit("/desk");
  });

  it("creates a new todo", () => {
    cy.visit("/app/todo/new-todo-1");
    cy.fill_field("description", "this is a test todo", "Text Editor").blur();
    cy.get(".page-title").should("contain", "Not Saved");
    cy.get(".primary-action").click();
    cy.visit("/desk#List/ToDo");
    cy.location("hash").should("eq", "/app/todo");
    cy.get(".list-row").should("contain", "this is a test todo");
  });
});

cy.fill_field reçoit le nom du champ, la valeur et le type de champ, ici Text Editor.

Lancer Cypress en local

Cypress utilise un navigateur à base Chromium déjà installé. Chaque application a sa propre suite. Pour l’application frappe :

terminal
cd ~/frappe-bench/apps/frappe
yarn cypress:open

Le shell Electron de Cypress s’ouvre. On y lance un test à la main, ou toute la suite.

Point d’attention

La commande de l’exemple se place dans l’application, pas à la racine du bench. Le test de la source se connecte avec le couple Administrator / admin.