A while ago I introduced a few of my co-workers to XMLUnit. They quickly realized the .NET version wasn't compiling cleanly against NUnit 2.2.x or the .NET framework 1.1 (much less 2.0). About at the same time I ran into a few issues with the Java version that I wanted to fix. I contacted Jeff Martin and Tim Bacon asking whether the project was still alive. After some conversation I was granted commit access to XMLUnit and here we are.
While my co-workers got sucked up by work (good for me 8-) and real-life so far, I've found time to fix all of my XMLUnit Java issues and address almost all of the open issues in the sourceforge trackers. The only issue remaining is building with Maven 1 which should be obsolete by now (we'll probably provide a Maven2 POM with XMLUnit 1.1, but stick with Ant for building).
Some changes so far:
- support for namespace validation with parsers other than Xerces - the groundwork has been provided by James Abley.
- fixed some sources for StringIndexOutOfRange- and NullPointerExceptions
- provided an XSLT-less XPath engine based on JAXP 1.3 if that is available - this fixes at least one problem where the XSLTC version in Java 1.5 chokes on some very basic stylesheets.
- added a bunch of options that allow comparisons to ignore comments, Text-internal whitespace or the difference between CDATA and Text nodes
One of the nice side-effects of working on issues raised against a unit test library is that your users know how to write unit tests. Most of the time the bug report is accompanied by a tests.
Right now I plan to wrap up everything and release XMLUnit Java 1.1 pretty soon, the biggest missing piece is documentation. XMLUnit comes with a nice PDF intro and I'd like to stick with it. My personal preference for a source format would be LaTeX, but I'll probably be alone with that, we'll see.
Once that is done, I plan to release .NET 1.1/NUnit 2.2 and .NET 2.0/NUnit 2.4 compatible versions of XMLUnit.NET.
Longer term I see a 2.0 version coming that focuses even more on the XMLUnit API and is even less dependent on JUnit. I'd like to provide adapters for JUnit 4 or TestNG on the Java and MBUnit and Team System Test on the .NET side in addition to the existing test frameworks.
There is a builder infrastructure that would provide a fluent interface on my list as well. Something like:
Diff d = DifferenceBuilder.compare(file1).with(file2) .while(Ignoring.WHITESPACE).while(Ignoring.COMMENTS); Asserter.expectSimilar(diff);
But nothing is carved in stone, yet, now is a good time to join the project mailing list and help shape the project's future.
path: /en/oss/XMLUnit | #