Protractor n’est plus utilisé par Angular. Aucun test ni configuration de test d’écrans (E2E) n’existe plus à la création d’un projet Angular. CYPRESS est le framework nouvellement conseillé. Il fournit notamment une migration automatique depuis Protractor. Mais son premier usage est parfois pénible. Donc le fichier package.json contient des commandes install-1*cypress
Les tests E2E permettent de valider le bon fonctionnement de l’application mais n’en sont pas les garants (malheureusement).
Selon votre poste et la configuration du proxy présente dans les variables d’environnement, il peut être nécessire de préciser à Cypress le proxy à utiliser pour accéder à l’application :
export HTTP_PROXY=
export HTTPS_PROXY=
L’outil Cypress utilisé pour les tests E2E se démarre avec la commande npm run cypress
Quand une étape d’un test E2E échoue, la plus part du temps, le reste du test échoue ensuite car un bouton ou un champs n’a pas été trouvé/saisi/cliqué/… Pour éviter de perdre du temps à exécuter des étapes perdues d’avance, est mis en place le framework cypress-fail-fast. Ce dernier arrête toute action de Cypress dès la première erreur.
_La couverture de code ne fonctionne plus depuis le passage en Angular-17 et le passage de webpack à ESbuild/Vite (cf. https://v17.angular.io/guide/esbuild) _
Une grande partie de l’effort de développement de la nouvelle PSL est centrée sur la librairie Angular Framework. Les tests E2E permettent d’en tester les fonctionnalités. Mais, sans couverture de code, il n’est pas possible d’identifier les lignes de code, les classes et les fonctionnalités non couvertes par les tests. Cela est maintenant possible en :
npm run codeDemarche-startcoverage (ou yarn à la place de npm)npm run cypress (ou yarn à la place de npm)Si la démarche est démarrée avec le codeDemarche-start, le code n’est pas instrumenté. Donc la couverture de code sera à 0%.
Il est courant que les tests E2E ne démarrent pas car le package.json, à la commande e2e, définit que le webdriver ne doit pas être mis à jour à chaque exécution (gain de temps non négligeable). Si le message d’erreur indique que la version de Chrome n’est pas compatible avec celle du webdriver, il suffit de passer la valeur du paramètre webdriverUpdate à true puis de relancer la commande e2e (attention à bien remettre la valeur à false avant le prochain commit).
Il est courant que les tests E2E échouent :