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
Topic revision: 2009-04-15, ReneeBaecker
 
Bitte die NutzungsBedingungen beachten.
Bei Vorschlägen, Anfragen oder Problemen mit dem PerlCommunityWiki bitten wir um WebBottomBarExample">Rückmeldung.