If you read up on TestNG, you can see an example of their XML output:
java.lang.AssertionError ... Removed 22 stack frames
Wow. That's breath-takingly ugly. I compare that to the equivalent in TAP with our optional YAML diagnostic syntax (this isn't how the YAML will really look, but it's just to give you an idea):
1..2 not ok 1 - someDescription2 --- signature: test1() name: test1 start: 2007-05-28T12:14:37Z end: 2007-05-28T12:14:37Z exception: class: java.lang.AssertionError stacktrace: | java.lang.AssertionError ... Removed 22 stack frames ok 2 - someDescription2 signature: test2() name: test2 start: 2007-05-28T12:14:37Z end: 2007-05-28T12:14:37Z xtra: is-config: true
The beauty of that is a TAP parser only needs to see this:
1..2 not ok 1 - someDescription2 ok 2 - someDescription2
TestNG has one big advantage, though: it's been written. We're still waiting on Test::Builder 2.0 before we can get the YAML. Fortunately Schwern has a grant for that work and hopefully he's making it happen.
Wow. That's breath-takingly ugly.
Yes it is but I doubt that any Java programmer looks at it in that format. They are more likely to look at it (or JUnit results) as a green/red bar in a test runner applet or via some plugin to Eclipse or Netbeans.
In fact you will probably be hard-pressed to find a Java programmer who can tell you anything about the JUnit/TestNG formats apart from the fact that they are in XML.
John.
--