Magento 2 et Intégration Continue

Le 10 décembre dernier, un webinar "Magento 2 Development Update" donnait les dernières informations et nouveautés de la prochaine version de Magento.

Parmis ces nouveautés j'ai choisi de m’arrêter sur une en particulier : l'implémentation d'un framework et d'une suite de tests au sein même de l'applicatif.
Ainsi seront livrés avec Magento 2 toute une série de tests (unitaires, intégration, javascript, statiques, performances, fonctionnels) permettant l'intégration continue des applications développées sous cette nouvelle version.
Ils ne demanderont plus qu'à être étendus pour couvrir le code des nouveaux modules ajoutés à Magento 2 !

Les tests d'intégration

Ces tests ont pour but de tester une action ou un process utilisateur. Ces actions seront donc simulées et les données reçues ou enregistrées en base de données pourront être vérifiées afin de valider ou non le fonctionnement.

Ce framework est basé sur PHPUnit et embarque nativement 2500 tests sur le core Magento. Ils s'exécutent en ~25min.

Les tests unitaires (PHP + JS)

Ici le but est de tester des méthodes isolées en dehors de tout contexte. L'objectif est de tester comment les données sont traitées. L'utilisation des mocks permettra de tester une méthode en simulant une configuration ou des communications avec la base de données.

PHPunit est également utilisé pour le test des méthodes PHP, et JsTestDriver pour les méthodes Javascript. Magento 2 embarque 5500 tests qui s'exécutent en ~11s.

Les tests statiques (PHP + JS)

Les tests statiques sont une analyse du code a proprement parlé. Il s'agit de vérifier l'intégrité du code et le respect des normes de coding PSR-1/2 sur lesquelles est basé Magento 2. Ces tests assurent la maintenabilité de l'application et l’optimisation du code écrit (complexité des méthodes, variables non utilisées ou encore copier/coller de bout de code).

Ici c'est PHP CodeSniffer qui est utilisé et qui exécutent 120.000 tests en ~1h.

Les tests de performance

L'objectif de ces tests est de calculer les temps de réponses et d'exécutions. Ils permettent de mettre le doigts sur du code non optimisé et consommateur de ressources afin de l'améliorer.

Les tests embarqués utilisent également PHPUnit et s'exécutent en ~2h sur le core de Magento 2.

Les tests fonctionnels

Il n'y a pour le moment pas de détails sur ces tests qui sont actuellement en cours de développement.

Conclusion

L'apport de ces suites de tests dans Magento 2 est une réelle avancée pour la qualité des projets sous Magento. Ces tests pouvant être automatisées, ils permettront de suivre au jour le jour la santé du code produit et donneront l'alerte dès qu'un nouveau développement mettra en danger l'ensemble de l'application.

L'utilisation unique de PHPUnit pour l'ensemble des tests permettra l'apport simple de nouveaux tests qui couvriront les nouveaux développements sans compromettre les fonctionnalités natives de Magento 2.

Laisser un commentaire

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

Captcha *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.