Atoum est en effet maintenant utilisé par plusieurs personnes, à titre personnel ou professionnel, et en conséquence, j'ai reçu plusieurs remarques et contributions qui ont permis de l'améliorer de manière significative.
De plus, un gros travail d'optimisation a été effectué pour améliorer ses performances, et il a porté ses fruits puisque atoum est maintenant capable d'exécuter sa suite de tests unitaires, composée de 13000 assertions, en environs 9 secondes au lieu de 40 sur un processeur Intel I5 à 2.6 Ghz sous Linux.
Ce gain, de quasiment 400%, a été obtenu grâce à un remaniement du code et surtout parce que atoum supporte maintenant la parallélisation des tests.
Chaque méthode de test est donc maintenant exécuté par atoum dans un processus séparé, afin de garantir l'isolation des tests, et il peut y avoir plusieurs processus exécutées simultanément.
Il y a également eu beaucoup d'ajouts fonctionnels, suite à certains retours des utilisateurs.
Atoum est ainsi maintenant capable de simuler des flux, ce qui lui permet d'émuler par exemple un système de fichier ou une connexion réseau.
Son système de bouchonnage
a également été amélioré afin de permettre de simuler des classes contenant des méthodes protégées abstraites.
Il est aussi maintenant possible de vérifier que certaines méthodes ont bien été appelées avant d'autres, pour, par exemple, pouvoir vérifier que des méthodes modifiant une base de données sont bien exécutées dans le cadre d'une transaction SQL.
De plus, la syntaxe des assertions a encore été améliorée, afin de rendre la rédaction des tests encore plus simple et intuitive.
La documentation n'est pas en reste, puisque que le fichier README, qui permet d'installer et utiliser atoum en quelques minutes, a été traduit en anglais, et que le wiki a été enrichi d'articles expliquant comment intégrer atoum avec jenkins ou Git, ou bien l'utiliser dans le cadre d'un projet Symfony 2, et d'autres sont en cours de rédaction.
Ce dernier contient également des ressources externes, comme un tutorial de Gérald Croes qui permet d'appréhender atoum dans le cadre de plusieurs cas pratiques.
Le projet progresse donc rapidement en s'adaptant aux besoins de ses utilisateurs, et il est aujourd'hui suffisamment mâture pour que je puisse commencer à communiquer sérieusement à son sujet.
C'est la raison pour laquelle je donnerais, lors du PHP Tour 2011 qui se déroulera les 24 et 25 novembre 2011 à Lille, une conférence présentant atoum dans le détail et ce qu'il peut apporter dans le cadre d'un développement professionnel.
Ce sera de plus l'occasion pour moi de revoir Jean-Marc, Julien, Ivan (vous devriez vraiment aller à sa conférence au sujet de Hoa), Hugo, Gérald, Arnaud, Nicolas, et même un ancien client.
J'y ferais aussi la connaissance IRL de David Soria Parra, l'un des deux Release Master
de PHP 5.4, de Gabriele Santini, ou encore de Loïc d'Anterroches.
Et évidemment, j'espère aussi vous y croisez, pour échanger au sujet de PHP, de atoum ou de tout autre sujet, d'autant que le programme du PHP Tour 2011 est plus qu'alléchant !
7 réactions
1 De jean-françois - 14/09/2011, 17:09
Il serait intéressant d'avoir un retour des personnes qui ont déjà utilisé Atoum dans un cadre "réel" ; sais-tu si les tests de certains sont disponibles (SVN ou GIT), que l'on puisse y jeter un coup d'oeil ?
2 De mageekguy - 14/09/2011, 17:57
@jean-françois : les tests unitaires d'atoum sont déjà un cas réel, mais tu peux toujours demander à Gérald Croes, @usul_ ou @Palleas, par exemple.
3 De jean-françois - 14/09/2011, 19:28
@mageekguy oui j'ai vu les cas présentés, mais ils sont justement bien utilisés J'aimerai voir les "déviances" par rapport à l'utilisation originale, justement pour voir si Atoum y répond mieux que phpUnit.
Le plus simple sera probablement de le tester pour mon prochain développement perso...
Merci pour les contacts !
4 De mageekguy - 15/09/2011, 09:18
@jean-françois : déviances ??
5 De jean-françois - 15/09/2011, 10:19
Hum, le terme est peut-être mal adapté
Disons qu'il est fréquent de voir de tests fonctionnels au milieu des tests unitaires par exemple, ou encore des tests mal construits car pas unitaires... C'est souvent "inévitable" sur de gros projets, mais je me demande si un autre cadre de travail (autre framework de test) peut aider le développeur à éviter ces "déviances".
Tu me diras : un test est un test, l'outil ne change rien pour le développeur dans la manière de concevoir ses tests. Mais qui sait, une autre syntaxe peut probablement aider à voir les choses d'un autre point de vue, non ?
6 De Renaud - 06/10/2011, 19:05
Bonjour Frédéric !
Ça fait un moment que je regarde de loin l'avancé d'Atoum et je te nais à t'informer que je commence à l'instant à l'utiliser dans ma société.
Je vais donc tenter de l'imposer à mes collègues tellement je suis convaincu que son fonctionnement différent des concurrents, ainsi que le fait qu'il prenne pleinement parti des possibilités offertes par php5.3+ font d'Atoum un framework de T.U. plus intéressant que PHPUnit.
Comment peut-on te contacter (en dehors des commentaires de ton blog) si j'ai besoin de support ou si j'ai quelques remarques/bugs/etc... à partager ?
Mail ? IM ? FB ? G+ ? IRC ? Pigeaon voyageur ?
Tu as mon mail dans mon commentaire
7 De mageekguy - 06/10/2011, 21:16
@Renaud : Toutes les informations permettant de contacter l'équipe de développement de atoum sont ici.