Documentation Frappe Framework

Frappe Framework

Tests UI avec l’API Frappe

QUnit écrit des tests d’interface avec l’API native. Les fichiers commencent par test_ et se lancent avec bench run-ui-tests.

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

Deux voies

On écrit des tests d’intégration, ou des tests JavaScript avec QUnit. QUnit utilise le cadre QUnit et l’API native de Frappe. La source le présente comme une façon plus rapide d’écrire des tests. Les tests Cypress sont dans Tests d’intégration UI.

Où placer les fichiers

Dans tests/ui de l’application. Le nom commence par test_ et finit par .js.

Le Test Runner charge ces tests et les exécute dans le navigateur. En intégration continue, frappe/tests/test_test_runner.py passe par ce Test Runner.

Lancer

Un fichier :

terminal
bench run-ui-tests --test frappe/tests/ui/test_list.js

Le nom est transmis à test_test_runner.py, qui charge le JavaScript dans le navigateur. Toute l’application :

terminal
bench run-ui-tests --app [app_name]

Les fichiers de tests/ui partent l’un après l’autre. Pour voir un échec, ouvrez le test dans le Test Runner et lancez-le à la main.

Ordre

Les tests d’interface suivent un ordre fixe, écrit dans tests/ui/tests.txt, pour respecter les dépendances.

Exemple

Le test « Test quick entry » attend deux assertions. Il ouvre la liste ToDo, crée un document, remplit description avec dix caractères aléatoires, insère, vérifie que le document n’est plus local, rouvre le formulaire, vérifie la description, puis supprime via le menu. Les étapes passent par frappe.run_serially, et assert.async signale la fin avec done().

Promesses

Si une méthode lance un appel asynchrone, elle doit renvoyer une promesse (Promise). Un test qui tombe sur une fonction sans promesse doit faire évoluer ce code pour qu’elle en renvoie une.

Tests d’interface QUnit dans Frappe | ERPNext Lab