Skip to content
This repository has been archived by the owner on Dec 17, 2023. It is now read-only.

ozzymcduff/XmlUnit

Repository files navigation

XMLUnit version 1.0 Build status

To run this software you will need:

  • Junit (http://www.junit.org/)
  • a JAXP compliant XML SAX and DOM parser (e.g. Apache Xerces)
  • a JAXP/Trax compliant XSLT engine (e.g. Apache Xalan) in your classpath

If you want to build the source code you will also need Ant (http://jakarta.apache.org/ant)

This build of the source code was prepared using JDK1.4.1, Junit3.8.1, and Ant1.5: it is not binary compatible with JDK1.1.x or Junit3.7.x. If you want to use these older libraries then you will need to rebuild the source code first.

Enjoy! http://xmlunit.sourceforge.net/

Changes in this version:

  • DifferenceListener interface refactored: single method now provides the NodeDetail of nodes that differ when a comparison is performed
  • NEW NodeDetail class added to supply details of compared nodes including XPath location!
  • NEW ElementQualifier interface added so that documents containing elements with repeated names can be compared using attribute or text values to determine which of the candidate elements are actually comparable (fixes various feature requests / posted bugs)
  • NEW ElementNameQualifier, ElementNameAndTextQualifier and ElementNameAndAttributeQualifier classes added to provide the default (backwards compatible) and extended implementions of the ElementQualifier interface
  • NEW ComparisonController interface now used to control the operation of a DifferenceEngine instance (extracted from DifferenceListener)
  • Incorporated DifferenceConstants patch submitted by ludovicc
  • Added support for namespaced attributes, previously missing
  • Build file now incorporates JUnitReport
  • Deprecated assertNotXpathsEqual() in favour of assertXpathsNotEqual() in XMLTestCase
  • Moved assertion methods from XMLTestCase to new XMLAssert class
  • PDF overview document added to distribution and content updated
  • Updated Javadocs on website tim.bacon@thoughtworks.com November/December 2002, April 2003

Changes in version 0.8:

  • Changes to compiled jar in distribution required for compatibility with JUnit 3.8
  • Fixes for a defect in the DetailedDiff class that caused a ClassCastException, raised by Ryan MacLachlan
  • Small API changes for usability (e.g. allow use of Source constructor arguments for Diff and Transform) tim.bacon@thoughtworks.com September 2002

Changes in version 0.7:

  • DifferenceListener interface extended to allow more user control over how to evaluate differences between control and test XML
  • NEW IgnoreTextAndAttributeValuesDifferenceListener class added to allow difference evaluation solely on the basis of tag and attribute names (ignoring differences between text and attribute values completely)
  • Fixes for a defect in the DetailedDiff class that caused a NullPointerException, raised by eBernhard and bob
  • Additional methods assertXpathExists and assertNotXpathExists added to XMLTestCase class
  • Additional methods added to Transform class to complete wrapping of javax.xml.Transformer class, requested by tCantegrel tim.bacon@thoughtworks.com August 2002

Changes in version 0.6

  • NEW DetailedDiff class to extract all the differences between two pieces of XML
  • NEW HTMLDocumentBuilder and TolerantSaxDocumentBuilder classes added to enable XML assertions to be made against badly formed HTML documents (uses the Swing html parser)
  • toString() method to return identity and description added to Difference class
  • assertXMLEqual and assertXMLNotEqual with (Document, Document) arguments added to XMLTestCase
  • XMLTestCase now implements the XSLTConstants (and by implication the XMLConstants interface)
  • Fixes for defects raised by danny zapata (handling namespaces), aakture (handling redundant whitespace in XMLUnit.getIgnoreWhitespace), and Craeg strong (handling nested XSL include/import in Transform) Thanks for the feedack guys! timBacon@primeEight.co.uk June 2002

Changes in version 0.5:

  • NEW assertion methods in XMLTestCase: assertXMLEqual, assertXMLNotEqual, assertXpathsEqual, assertXpathsNotEqual, assertXpathValuesEqual, assertXpathValuesNotEqual, assertXpathEvaluatesTo, assertXMLValid, assertXMLIdentical, assertNodeTestPasses
  • NEW DifferenceEngine and Difference classes used by the Diff class to facilitate comparison across multiple namespaces and for more node types (DocumentType, Comment, CDATASection, and ProcessingInstruction as well as Element, Attribute and Text)
  • Diff messages now more descriptive
  • NEW SimpleXpathEngine class for testing Xpath expressions
  • NEW SimpleSerializer class
  • TransformerFactory setter and getter, and utility buildDocument() methods added to XMLUnit class
  • 'global' but non-static methods in XMLTestCase deprecated (XMLUnit static methods should be used instead)
  • Xalan and Xerces specified as default JAXP implementations in the 'test' target of the ant build file (to get around limitations in the Crimson parser) timBacon@primeEight.co.uk April 2002

Features added in version 0.4:

  • NEW Validator class for validation against DTDs
  • NEW NodeTest class, NodeTester interface, AbstractNodeTester and CountingNodeTester classes for validating individual Nodes in a DOM tree (NB: requires support for DOM Traversal in your DOM implementation)
  • cleaner separation of source and test code through directory structure
  • better documentation
  • replacement of all deprecated JUnit assert() with assertEquals() calls timBacon@primeEight.co.uk March 2002

Features added in version 0.3:

  • NEW Transform class added to support for JAXP/Trax compliant XSLT engines
  • Diff class extended to support Transform class
  • more testcases added
  • removed external dependency on JDOM timBacon@primeEight.co.uk October 2001

Original source:

  • Diff class to describe differences between DOM documents
  • XMLUnit class to act as a Diff factory
  • XMLTestCase extension to JUnit TestCase jeff@customMonkey.org April 2001