On Apr 18, 2008, at 5:42 AM, Ovid wrote:
Thinking about this more, consider this ugly compromise:
---
file: t/resource.t
line: 23
results:
have: <foo>3</foo>
want: { "foo":3 }
tags:
- api
- database
user:
com.foo.bar:
have-type: xml
want-type: json
com.example.com:
have-type: html
have-type: JSON
I'm not on the tap-l list (why is this cross-posted to perl-qa???) so
I haven't been following this discussion too closely. But this one
caught my eye.
How can the above example occur? How do two different user tags get
applied to a single test result? In the Test::Exceptions vs.
Test::Deep examples mentioned earlier (IIRC) I can see how a single
TAP *stream* can have conflicting tags, but I can't see how different
tags get applied to a single test result.
Even in TestNG (which I use extensively at work) where you can mix
TestNG and JUnit assertions in the same test method, each single
assertion is controlled by just one assertion class. Furthermore, in
TestNG it's the harness that creates the stream. The individual test
cases just succeed or throw AssertionError, so it's a much simpler
case than the TAP approach where every case is documented.
Chris