Cypress : Une variante en bien mieux de PhantomJS

Dans un récent post, je parlais de Nightwatch, qui prend toute son ampleur lorsque l’on plug le bousin à Browserstack afin de lancer les tests d’intégration sur plusieurs browsers et différents OS (y compris mobile).

Mais, si vous ne voulez vraiment pas comprendre que Nightwatch + Browserstack, c’est trop bien, lisez ce qui suit.

Si vous n’êtes pas fan du principe (après tout, on fait appel à un service tiers, et payant) mais que vous êtes devenu comme moi un peu allergique à Selenium, je ne saurai que trop vous recommander de jeter un oeil à Cypress, qui est est un environnement entièrement dédié aux tests, et qui est assez hallucinant dans la quantité de services qu’il propose :

  • Tests unitaires
  • Tests d’intégration
  • Tests fonctionnels

Le tout avec une API claire qui permet d’écrire différents tests et assertions facilement (notamment à travers une API qui utilise jQuery).

Le dashboard est superbe, d’autant qu’il snapshot les différentes actions que vous écrivez, ce qui vous permet de faire du time travel pour débugger votre application.

A part vous proposer des lignes de code qui proviennent plus ou moins du tuto officiel, je ne vais pas vous apporter grand chose de plus que la documentation et la vidéo ci-dessous :

What is Cypress? from Cypress.io on Vimeo.

Le seul reproche ?

Le seul reproche que je pourrai faire à Cypress, c’est qu’il tourne uniquement avec Chrome, ce qui selon moi est une sacrée boulette pour les tests d’intégration parce qu’on se doute que le browser qui va le moins vous péter à la tronche la majeure partie du temps, c’est bien Chrome. Alors que FF, Opera, Opera Mini (et son absence totale de localStorage <3) ou notre copain IE, euh, sont parfois un peu plus capricieux.

En fait c’est pas le seul reproche que j’ai envie de faire…

… mais malheureusement pour moi je vais avoir du mal à parler des soucis potentiels autour de l’intégration et du déploiement continu. A l’origine je m’interrogeais sur le fait que – vu la lourdeur de Cypress, ça semblait compliqué d’automatiser les tests d’intégrations et de déployer si c’était green, mais la documentation à ce sujet me fait dire le contraire :

https://docs.cypress.io/guides/guides/continuous-integration.html#

Donc oui, vous pouvez lancer Cypress dans un pipeline d’intégration continue. Reste que (HAHA ! J’ai pas dis mon dernier mot !!), considérer que les tests d’intégrations sont valides uniquement sur Chrome, c’est pour moi une hérésie.

Quoiqu’il en soit, je pense que Cypress est une excellente solution qui a en plus le mérite d’être très axé utilisateur. Fondamentalement on pourrait demander à une équipe Q/A de rédiger les tests et de gérer cette partie.

Ca les ferait bosser.

Un peu.

Non mais.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *