Alle sprechen die gleiche Sprache - TAP
Bei Perl hat sich mittlerweile ein Protokoll etabliert, das bei (nahezu) allen Test-Modulen verwendet wird - TAP. TAP steht hierbei für Test Anything Protocol. Damit wird sichergestellt, dass die Ergebnisse von Tests immer gleich dargestellt werden.
Eine Beipielausgabe eines Tests sieht so aus:
~/EigeneModule/My-Module 89> perl -Ilib t/test.t
1..373
ok 1 - use My::Module;
ok 2 - The object isa My::Module
ok 3 - My::Module->can(...)
ok 4
ok 5
[..]
ok 17
ok 18
ok 19 - F checked hydro
ok 20 - F checked waal
ok 21 - F checked iso
ok 22 - A checked hydro
ok 23 - A checked waal
ok 24 - A checked iso
In der ersten Zeile ist der
Plan aufgeführt. Was der
Plan ist, wird bei Test::Simple genauer erläutert. In den darauf folgenden Zeilen steht für jeden einzelnen Test, der in test.t gemacht wird, das Ergebnis. Mit ok wird gezeigt, dass der Test erfolgreich war und mit not ok dass der Test fehlgeschlagen ist. Die Zahl nach ok beziehungsweise not ok zeigt, welcher Test gelaufen ist.
Bei den meisten Tests kann man noch einen Namen oder eine Nachricht angeben. Damit kann der Test leichter identifiziert werden wenn etwas schiefgelaufen ist. Wenn zum Beipiel Test 3 fehlschlägt, kann man anhand der Nachricht (``
My::Module->can(...)'') schnell feststellen, dass bei dem can_ok-Test (siehe Test::More) etwas schiefgelaufen ist und kann sich bei der Fehlersuche auf diesen einen Test beschränken.
Der ganze Aufbau von TAP kann unter perldoc Test::Harness eingesehen werden.
Das Test Anything Protocol wird nicht nur bei Perl verwendet. Es gibt einige Implementierungen für andere Sprachen wie python, PHP und C++.
Parsen des Protokolls
Seit 2006 gibt es auch einen Parser, der dieses Protokoll parsen kann: TAPx::Parser. Das Modul wurde von Curtis 'Ovid' Poe geschrieben und ermöglicht es, die Ausgaben der Testsuite zu parsen und gegebenenfalls weiterzuverarbeiten. Denkbar ist es, die Test-Ergebnisse für eine Webseite aufzubereiten.
--
ReneeBaecker - 15 Apr 2009