Stuff with the Perl Foundation. A couple of patches in the Perl core. A few CPAN modules. That about sums it up.
If you read up on TestNG, you can see an example of their XML output:
<testng-results>
<suite name="Suite1">
<groups>
<group name="group1">
<method signature="com.test.TestOne.test2()" name="test2" class="com.test.TestOne"/>
<method signature="com.test.TestOne.test1()" name="test1" class="com.test.TestOne"/>
</group>
<group name="group2">
<method signature="com.test.TestOne.test2()" name="test2" class="com.test.TestOne"/>
</group>
</groups>
<test name="test1">
<class name="com.test.TestOne">
<test-method status="FAIL" signature="test1()" name="test1" duration-ms="0"
started-at="2007-05-28T12:14:37Z" description="someDescription2"
finished-at="2007-05-28T12:14:37Z">
<exception class="java.lang.AssertionError">
<short-stacktrace>java.lang.AssertionError
... Removed 22 stack frames
</short-stacktrace>
</exception>
</test-method>
<test-method status="PASS" signature="test2()" name="test2" duration-ms="0"
started-at="2007-05-28T12:14:37Z" description="someDescription1"
finished-at="2007-05-28T12:14:37Z">
</test-method>
<test-method status="PASS" signature="setUp()" name="setUp" is-config="true" duration-ms="15"
started-at="2007-05-28T12:14:37Z" finished-at="2007-05-28T12:14:37Z">
</test-method>
</class>
</test>
</suite>
</testng-results>
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.
Re: TestNG (Score:1)
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.
--