Testa något protokoll
Test Anything Protocol ( TAP ) är ett protokoll som möjliggör kommunikation mellan enhetstester och en testsele . Det tillåter individuella tester (TAP-producenter) att kommunicera testresultat till testselen på ett språkagnostiskt sätt. Ursprungligen utvecklad för enhetstestning av Perl -tolken 1987, är producenter och analyserare nu tillgängliga för många utvecklingsplattformar.
Historia
TAP skapades för den första versionen av programmeringsspråket Perl (släpptes 1987), som en del av Perls kärntestsele ( t/TEST)
. Test ::Harness
-modulen skrevs av Tim Bunce och Andreas König för att göra det möjligt för Perl-modulförfattare att dra fördel av TAP. Det blev de facto standarden för Perl-testning.
Utveckling av TAP, inklusive standardisering av protokollet, skrivning av testproducenter och konsumenter, och evangelisering av språket koordineras på TestAnythings webbplats.
Som ett protokoll som är agnostiskt för programmeringsspråk, utökade TAP-enhetstestbiblioteken bortom sina Perl-rötter och har utvecklats för olika språk och system som PostgreSQL , MySQL , JavaScript och andra implementeringar listade på projektwebbplatsen. Ett TAP C-bibliotek ingår som en del av FreeBSD Unix-distributionen och används i systemets regressionstestsvit.
Specifikation
En formell specifikation för detta protokoll finns i modulerna TAP::Spec::Parser
och TAP::Parser::Grammar .
Test::Harness -modulens
beteende är de facto TAP-standardimplementeringen, tillsammans med en uppskrivning av specifikationen på https://testanything.org .
Ett projekt för att ta fram en IETF- standard för TAP initierades i augusti 2008, på YAPC ::Europe 2008.
Användningsexempel
Här är ett exempel på TAP:s allmänna format:
1..48 ok 1 Beskrivning # Direktiv # Diagnostisk .... ok 47 Beskrivning ok 48 Beskrivning
Till exempel kan en testfils utdata se ut så här:
1..4 ok 1 - Inmatningsfil öppnad inte ok 2 - Första raden i ingången giltig. Mer utdata från test 2. Det kan finnas godtyckligt antal rader för alla utdata så länge det finns åtminstone någon form av blanksteg i början av raden. ok 3 - Läs resten av filen #TAP metainformation inte ok 4 - Sammanfattad korrekt # TODO : inte skriven ännu