
Test Anything Protocol specification (2006) - Tomte
http://testanything.org/tap-specification.html
======
SwellJoe
The testing culture in Perl is among the best I've seen in any language. I
miss it when I deal with PHP stuff, which rarely has tests, at all, much less
anything resembling complete test coverage and nice smolderish output. Ruby
and Python are pretty good, but still seem to be less religious about testing
than the stuff that appears on CPAN.

TAP is really nice, though I don't know that it's strictly necessary to build
a good suite of tests; it's nice how simple it is (making it easy to use it
across languages if you have more than one in your app), but I've found the
testing infrastructure to be nice enough on Ruby and Python to not really have
to dig into making it do TAP. Everybody has invented their own, and it all
works OK.

That said, it'd be really nice if everyone could converge on a common output
format, and build super nice tools for consuming it, rather than having a
bunch of kinda OK tools built in a dozen different languages. I guess then the
problem is that your dev toolchain then requires whatever language you're
building in, plus whatever language your reporting tool is built in. And,
there's always resistance to that, on almost every project I've worked on.
That may be changing with API-based architectures, though...there's probably a
business worth building around this problem, though you'd likely be selling to
big enterprises who have heterogeneous application stacks (and selling to
enterprise kinda sucks).

Is there already a CI tool that'll consume from projects in git and is smart
enough to understand the individual test results? I know Jenkins has TAP
support, but I haven't gotten around to setting it up yet.

~~~
kinow
Jenkins TAP plugin maintainer here. Let me know if you have suggestions to
improve the current TAP support in Jenkins, or any ideas.

Not much of a Perl programmer, but I try to validate the plug-in against the
output of some Perl lib tests, and have been wanting to spend some time adding
another view to the plugin to mimic [http://www.spurkis.org/TAP-Formatter-
HTML/test-output.html](http://www.spurkis.org/TAP-Formatter-HTML/test-
output.html)

Now with Node.JS the TAP community got some more users, and there are also
tools being created (though not really popular I think) like
[http://www.taptinder.org/](http://www.taptinder.org/) and
[https://github.com/substack/tape](https://github.com/substack/tape).

------
chriswarbo
I've been wanting to like TAP, but can't seem to find much straightforward
tooling around it. There seem to be tons of libraries for producing it (is a
library really needed to spit "ok"/"not ok" to stdout?), a bunch of formatting
commands (is it really that useful to swap "ok" with a tick and "not ok" to a
cross?), then there are things like Smolder and Jenkins which seem interesting
but quite heavyweight.

What I'd really like is a commandline tool for tracking test passes/failures
over time, graphing trends, tracking how long tests remain in a failed state,
etc. Is there anything like this which doesn't require running a Web server
and opening a Web browser?

~~~
55acdda48ab5
I would imagine the CPAN Testers stuff is adaptable enough.

[http://matrix.cpantesters.org/?dist=Test-
Harness%203.36;os=l...](http://matrix.cpantesters.org/?dist=Test-
Harness%203.36;os=linux;reports=1)

------
mofle
Some useful TAP resources here: [https://github.com/sindresorhus/awesome-
tap](https://github.com/sindresorhus/awesome-tap)

------
Mithaldu
If Perl did anything for the world, TAP is the greatest thing it did, and even
THAT is still being developed. :D

~~~
lsiebert
Git also uses Perl, more then you'd think.

------
jwilk
"Please complete the security check to access testanything.org"... How about
no?

Here's an archived copy: [https://archive.is/a9MFf](https://archive.is/a9MFf)

------
draw_down
The node testing module `tape` also outputs TAP. Recommended.
[https://www.npmjs.com/package/tape](https://www.npmjs.com/package/tape)

