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

Reply via email to