Wer schon einmal Unit Tests in PHP durchgeführt hat, ist dabei mit großer Wahrscheinlichkeit nicht um PHPUnit herumgekommen. Warum das so ist liegt auf der Hand: Es hat sich lange bewährt. Vor nunmehr 13 Jahren begann das Framework seinen bis heute anhaltenden Siegeszug in der PHP-Welt. Nichtsdestotrotz gibt es immer wieder Versuche, den alteingesessenen Silberrücken aus seinem Revier zu vertreiben.
Atoum im Überblick
Bei Atoum handelt es sich um ein PHP-Unit-Test-Framework mit Abwärtskompatibilität bis PHP 5.3. Mittels eines modernen und intuitiven Syntaxansatzes sollen Tests schneller zu schreiben, leichter zu lesen und generell übersichtlicher gemacht werden (Abb. 1). Die Nähe zur gesprochenen Sprache ist dabei sicherlich der auffälligste Punkt im Vergleich zu anderen Programmier- und Testsprachen, und soll ab Minute eins für gute User Experience und einen schnellen Einstieg sorgen.

Abb. 1: Beispiel eines Atoumtests
Dank der vereinfachten Syntax und cleveren Nutzung anonymer Funktionen und Closures sollen Mocks bzw. Stubs zudem ebenfalls leichter zu implementieren sein.
Der Fokus liegt beim Testen
Um den Isolationskriterien spezifischer Klassen gerecht zu werden, führt Atoum jeden Test per Default in separaten Prozessen aus. Besonderer Wert wird dabei laut Hersteller auf die beanspruchte Arbeitsspeicherlast gelegt, sodass trotz niedriger Belastung schnelle Abarbeitungszeiten garantiert werden könnte.
Selbstverständlich darf in aktiver Nutzung zudem das Feedback nicht fehlen. Unit Test Execution Reports können entsprechend im Xunit-Format ausgegeben werden, was eine Kompatibilität mit Continuous-Integration-Tools wie Jenkins, Hudson oder TravisCI ermöglicht. Code Coverage Reports können im Terminal oder graphisch im Browser dargestellt und bis hin zu prozentualen Coverage-Werten einzelner Funktionen begutachtet werden.
Wer möchte kann die einzelnen Report-Outputs noch nach belieben anpassen, aber eine funktionale Notwendigkeit besteht dazu nicht.
Frameworkless – the new black?
by Carsten Windler (KW-Commerce GmbH)
Getting started with PHP-FFI
by Thomas Bley (Bringmeister GmbH)
JSON-Schema von 0 auf 100
by Ingo Walther (Electronic Minds GmbH)
Interview mit Christian Schneider zum Thema „DevSecOps“
DevSecOps ist, bezogen auf Security-Checks, die logische Fortführung der Automatisierung im DevOps-Sinne
IT-Security Experte, Christian Schneider
Christian ist als freiberuflicher Whitehat Hacker, Trainer und Security-Coach tätig. Als Softwareentwickler mit mittlerweile 20 Jahren Erfahrung, fand er 2005 seinen Themenschwerpunkt im Bereich IT-Security.
Installation
„Innerhalb von 5 Minuten einsatzbereit“ – das ist das von Atoum gegebene Versprechen. Über den PHP-Paketmanager Composer oder ein einzelnes PHAR-Archiv lässt sich das Framework in neue oder existierende Projekte integrieren. Und damit kann es eigentlich direkt losgehen.
Auf Github garantiert der master permanente Stabilität, die mit eigens in Atoum geschriebenen Tests gewährleistet werden soll.
Fazit
Atoum ist es wert, einen Blick darauf zu werfen. Vielleicht nicht so sehr, wenn man mit PHPUnit zufrieden und eingearbeitet ist, aber für Testneulinge oder PHPUnit-Kritiker ist mindestens der neue Syntaxansatz sicherlich eine Alternative. Wie Intuitiv dieser am Ende allerdings wirklich ist, muss jeder für sich selbst entscheiden.
Name | Atoum |
---|---|
Hersteller | Frédéric Hardy |
Projektwebsite | http://atoum.org/ |
GitHub | https://github.com/atoum/ |