Contact
09.06.17

Glpi now uses atoum for its unit tests!

About 2 years ago, we’ve begin to add some unit tests in the GLPI project; thanks to Valentin and Remi Collet. The PHPUnit framework has been used, since this is the most "common" choice for a PHP project.

Unfortunately, many parts of the code are not tested yet... This is a huge job; but we’re working on it. Nowadays, each new feature implemented in GLPI is unit tested; and we plan to spend time this summer to work on all of this.Why now?I personally appreciate atoum since its very beginning, and I’ve proposed to switch a while ago. Since we plan to add more and more tests; switching while there are still a few tests was easier. That’s why it’s been done now.So, why to switch?Well... Speaking of PHP unit testing frameworks, there are not so many possible choices. PHPunit is probably the oldest unit testing framework available for PHP; and it does the job, really. atoum is a more recent and modern choice, and it has some interesting capabilities:

  • testing variables types (if you test an integer and get a string, this is not correct),
  • wonderful mocking system (that permit to mock php native functions, constants, ...),
  • use closure to test outputs, exceptions, ... (way more interesting than phpunit’s annotations),
  • concurrent run of tests (even if it have been disabled for GLPI),
  • fully isolated tests,
  • chained calls,
  • more natural way to write tests (this is maybe just my point of view - but this is really more simple to me).

Also, GLPI is a French project, most core team members are French, just as atoum! 😉On a technical noteSwitching from PHPUnit to atoum is not something very difficult, especially if you did not yet use advanced features (which is the case for GLPI); but it is not really something that can be scripted. In facts, it could for some common cases, but reviewing tests is not something bad globally. Also, re-writing tests is a very good start point to learn new syntax, asserters and possibilities.For the GLPI project, we’ve spent two days working on the rewrite. What we had to take care of:

  • atoum is not permissive at all. Every notice in the code will make tests fail per default (which is a good point); we had to fix them;
  • we’re doing kind of functional tests and not only unit tests. Some existing tests used to change existing values in the database, before resetting them. That cannot be done running tests concurrently;
  • atoum does not support dependencies across tests; which phpunit does. It should seem a bad point, but the point is "tests are isolated". So... They cannot be dependent, we had to find another way;
  • session usage: GLPI uses many data in the session; and that is really a problem for testing... We had to disable concurrent runs mainly because of that :’(

The futureIn a close future, we plan to improve our unit tests; since many parts of the code are not tested at all. We also plan to split our unique directory into several ones, making possible to disable concurrent runs only on functional tests, not on the whole tests suite.Johan Cwiklinski.

Vous aimerez peut-être aussi ces articles

08.09.26
We are pleased to announce the availability of OAuth authentication in GLPI Android Inventory Agent 1.9.0. This new feature enhances the security of Android deployments by providing a modern, dedicated authentication mechanism specifically designed for inventory operations. More Secure and Dedicated Authentication With this new version, administrators can configure a dedicated OAuth client for GLPI Android Inventory Agent, […]
07.09.26
GLPI 12 has now reached the Release Candidate stage. This means no more new features will be added; the focus is now on bug fixing, and completing translations. The version is feature-ready, and we’re very close to the stable release. GLPI 12 stable will be released in October 🎉 You can already explore what’s coming in this […]
02.09.26
Félicitations ! Nous avons le plaisir d'annoncer notre nouveau partenaire Silver GLPI Network en France : Helpline UXLINE, le centre d'expertise GLPI de HELPLINE by Everience. En tant que partenaire direct de TECLIB, l'équipe accompagne les organisations dans l'industrialisation de leurs processus ITSM/ESM et la modernisation de leurs services de support. Nos consultants couvrent toutes les composantes d'un projet GLPI : gouvernance ITSM/ESM, […]
La gestion des services informatiques et métier pour 1 700 magasins, 11 États et 29 000 employés représente un défi majeur en matière d'ingénierie et de gouvernance. Confronté à des coûts de licence contraignants et à un historique fragmenté, Grupo DPSP — un géant brésilien né de la fusion de Drogaria São Paulo et Drogaria Pacheco — a dû repenser entièrement sa stratégie de gestion des services. Dans cette vidéo exclusive […]
19.08.26
Félicitations ! Nous avons le plaisir d'annoncer notre nouveau partenaire Silver GLPI Network en Azerbaïdjan : InSol LLC. InSol LLC est une entreprise de services informatiques basée en Azerbaïdjan, spécialisée dans les services informatiques gérés, les infrastructures informatiques, l'administration système, les solutions cloud, la cybersécurité et le support technique. Elle aide les organisations à mettre en place des environnements informatiques fiables et sécurisés en proposant un support proactif, la gestion d'infrastructures, […]
In the public sector as well as in large-scale IT service management, maintaining flawless service continuity while meeting strict contractual requirements is a daily challenge. In Brazil, Consórcio DPZ, a strategic consortium formed by three major companies from the Pernambuco region (Datamétrica, Pronet, and Zero Um) rises to this challenge across the entire state government […]
04.08.26
Nous avons le plaisir d'annoncer une nouvelle version de l'agent GLPI : la 1.19. Vous pouvez la télécharger sur le projet GitHub de l'agent GLPI : https://github.com/glpi-project/glpi-agent/releases/tag/1.19. Cette nouvelle version corrige les failles de sécurité suivantes : La version inclut également quelques corrections de bugs et améliorations : Nous introduisons aussi un support expérimental pour la future version GLPI 12 : Vous pouvez consulter les détails des changements sur […]
Lorsqu’on est un prestataire majeur de services informatiques présent dans 16 pays, laisser la moindre demande au hasard est tout simplement inenvisageable. Pour l’équipe « Product Care » d’Econocom — chargée du service après-vente et des garanties matérielles — disposer d’une solution logicielle robuste est une condition sine qua non de la réussite. Entre l’atelier technique et le point d’entrée des demandes clients, une solution unifiée s’imposait […]
22.07.26
Félicitations ! Nous avons le plaisir d'annoncer notre nouveau partenaire Silver GLPI Network en France : Somone. Depuis 2006, Somone accompagne les entreprises dans leurs projets d'observabilité et de gestion informatique. Son expertise couvre le conseil, l'intégration, le maintien en conditions opérationnelles, le support, la formation ainsi que l'optimisation de plateformes. Dans cette dynamique, Somone s'appuie sur GLPI, solution ITSM open source de renom, pour […]
16.07.26
Nous sommes fiers d'annoncer cette nouvelle version du plugin Carbon pour GLPI, qui apporte des corrections de bugs ainsi que de nouvelles fonctionnalités mineures. Développé dans le cadre du projet IEN (Impact Environnemental du Numérique) avec l'IRT SystemX, Teclib’ et d'autres partenaires, ce plugin vous aide à évaluer l'impact environnemental de votre parc informatique. Vous pouvez télécharger […]
15.07.26
Félicitations ! Nous avons le plaisir d'annoncer notre nouveau partenaire Silver GLPI Network en France : Orsenna. Orsenna est un acteur majeur de la supervision et de l'observabilité des systèmes informatiques. Expert multi-constructeur, Orsenna accompagne les équipes informatiques dans la réussite de leurs projets de supervision. Notre expertise repose sur une maîtrise parfaite des solutions du marché et de leur interconnexion, permettant […]
13.07.26
Pendant deux jours, l'écosystème de la confiance numérique s'est réuni pour débattre de l'avenir des infrastructures informatiques. GLPI a eu le plaisir d'être aux côtés de son partenaire EORIS lors du Salon de la Souveraineté Numérique. À travers des démonstrations en direct, des échanges et des discussions enrichissantes, cet événement a mis en lumière une tendance claire : un intérêt croissant pour des alternatives capables de concilier performance opérationnelle et protection rigoureuse des données […]
08.07.26
Le salon GITEX AI Europe, qui s'est tenu les 30 juin et 1er juillet à Berlin, a permis aux équipes de GLPI d'entrer en contact avec des acteurs clés du secteur technologique européen. Durant ces deux jours, nous avons présenté notre approche de la souveraineté numérique — un domaine où le modèle Open Source apporte des solutions concrètes pour la gestion des infrastructures informatiques. Des échanges constructifs […]
01.07.26
Félicitations ! Nous avons le plaisir d'annoncer notre nouveau partenaire Silver GLPI Network en Roumanie : Quartz Matrix. Quartz Matrix est une entreprise technologique roumaine spécialisée dans la transformation numérique pour trois secteurs clés : l'éducation, l'industrie et l'administration publique. Forte d'une solide expertise dans le domaine des TIC, l'entreprise développe et intègre des solutions couvrant le cloud computing, l'IoT, l'intelligence artificielle, la cybersécurité et […]
01.07.26
Les 23 et 24 juin 2026, l’équipe GLPI a participé au congrès CoTer Numérique à Reims, l’un des rendez-vous annuels incontournables pour les décideurs informatiques des collectivités territoriales françaises. Un stand au cœur des échanges : installée au stand n° 3 (Espace Parvis), l’équipe a passé deux jours à rencontrer un large éventail de […]
30.06.26
GLPI a participé à VivaTech 2026, qui fêtait sa 10e édition — le plus grand événement mondial dédié aux technologies, organisé à Paris — et qui, cette année, a tenu toutes ses promesses. Installée au pavillon « We Are Normandy » (stand 2B59 – hall 7.2), l’équipe Teclib’ a passé trois jours à nouer des relations avec des responsables institutionnels, des clients issus de grandes entreprises, des représentants des collectivités locales, […]
29.06.26
Nous informons la communauté GLPI de plusieurs failles de sécurité identifiées dans un certain nombre de plugins communautaires. Des mises à jour sont disponibles et doivent être déployées sans délai sur toutes les instances concernées. Plugins concernés et failles Les failles identifiées présentent différents niveaux de gravité, notamment une faille critique d’exécution de code à distance (RCE) dans GenericObject (CVSS 8,9), plusieurs […]
25.06.26
Le vendredi 12 juin, toute l'équipe Teclib' s'est réunie à Caen, où est basée notre équipe technique, à l'occasion du Teclib' Day : une journée bien remplie consacrée aux bilans semestriels, aux projets à venir et à un véritable moment de cohésion d'équipe. Matin : bilans semestriels au MoHo La journée a débuté au MoHo, un espace de coworking créatif situé au cœur de Caen, autour d'un café et […]
24.06.26
Deux nouvelles versions de GLPI sont disponibles : les versions 11.0.8 et 10.0.26 corrigent plusieurs failles de sécurité critiques récemment découvertes. La mise à jour est vivement recommandée ! De nombreuses corrections de bogues ont également été apportées ; consultez les journaux des modifications pour plus de détails : Vous pouvez télécharger les nouvelles archives sur GitHub : Vous trouverez ci-dessous la liste des failles de sécurité corrigées dans ces versions de correction : […]
23.06.26
Vous pouvez la télécharger sur le projet GitHub de GLPI Agent : https://github.com/glpi-project/glpi-agent/releases/tag/1.18 Cette nouvelle version est essentiellement une mise à jour de sécurité visant à corriger les failles suivantes : Cette version comprend également quelques corrections de bogues : vous pouvez consulter le détail des modifications dans le journal des modifications officiel disponible en ligne ici : https://github.com/glpi-project/glpi-agent/blob/1.18/Changes Concernant l'installation, voici ce qu'il faut retenir : cette fois-ci, nous recommandons vivement […]
1 2 3 20
chevron-droit
LinkedIn Facebook Pinterest YouTube rss Twitter instagram facebook-vide rss-vide linkedin-vide Pinterest YouTube Twitter instagram