Laissez-vous conter l'histoire de la princesse CI.
L'histoire se passe dans un monde peuplé de standards de code, de tests unitaires, fonctionnels et end-to-end.
Entourée de ses amis PHPCodeSniffer, PHPUnit, Behat, Eslint, Jest et Selenium, elle va se heurter à différents ennemis qui l'attendent au tournant :
- L'isolation des tests end-to-end
- Le split des tests sur CircleCI
- Les lenteurs de chargement des fixtures
- L'authentification dans les tests end-to-end
- La gestion des latences API dans les tests end-to-end
- La gestion de l'asynchrone avec l'arrivée dans le royaume de RabbitMQ et ElasticSearch
- L'optimisation de la stack Docker
Vous découvrirez comment elle va surmonter ces épreuves pour que cette histoire se termine en "happy end".
32. -10% *
* Offre soumise à conditions, sous réserve d'éligibilité. Gain moyen observé pour une step CircleCI donnée. Ce slide ne garantit pas un tel gain si vous faites
de même sur votre projet. Ne mangez pas trop gras, trop sucré, trop salé.
Chrome headless + facebook/php-webdriver
33. The end (to end)
Et ils vécurent heureux et eurent plein
d’autres tests
34. The end
Artifacts
Grouper les tests “rapides”
Prioriser
Isoler
Héberger ses images Docker
Exporter ses fixtures
Utiliser Panther / FacebookWebDriver
37. Prochainement...
Utiliser tmpfs
Ne plus bypasser RabbitMQ ou LogStash (auto-consume, reply middleware...)
Avoir du cache Docker ($$$)
Lancer les tests en fonction des fichiers modifiés (front / back)
Environnement test !== e2e
38. Merci de votre attention
Et cette fois-ci c’est bel et bien fini !