All Versions
Latest Version
Avg Release Cycle
131 days
Latest Release
94 days ago

Changelog History
Page 1

  • v2.7.0

    May 12, 2020

    The biggest changes are to the placeholder and assertj modules. The assertj module should now work with AssertJ 3.15+.

    This version contains a backwards incompatible change to the PlaceholderHandler interface that is part of the experimental placeholders module: The evaluate method now receives a variable number of string arguments in addition to the textual content of the element/attribute. This allows placeholders like ${xmlunit.matchesRegex(some\s*regex)}.

    ✅ the AssertJ tests now pass on non-English locales as well
    Issue #180

    ➕ added a workaround for a binary incompatible change in AssertJ that caused xmlunit-assertj to be incompatible with AssertJ 3.15.0
    Issue #181

    ➕ added a new ${xmlunit.matchesRegex(regex)} placeholder
    PR #178 by @Jazzyekim.

    ➕ add a new ${xmlunit.isDateTime} placeholder
    inspired by and by MilkyWare
    Issue #174

    avoid unnecessary creation of DocumentBuilderFactory in DOMDifferenceEngine when a custom factory has been provided to DiffBuilder.
    Issue #182

  • v2.6.4

    March 08, 2020

    🚀 This release fixes a bug that affects the XPath for missing nodes in certain corner cases and improves the AsssertJ module. In particular XMLUnit 2.6.4 is supposed to be compatible with AssertJ 3.13.x.

    The full list of changes:

    the dependencies on JAXB implementation and its transitive
    ✅ dependencies has been promoted from test scope to optional for Java
    9 and later
    Issue #162

    ➕ added containsAnyNodeHavingXPath, containsAllNodesHavingXPath
    and hasXPath assertions to xmlunit-assertj.

    ➕ added extractingAttribute method to xmlunit-assertj.

    ✂ removed some redundant instanceof checks.
    PR #171 by

    xmlunit-assertj should now work with AssertJ-Core 3.13.x
    Issue #166

    the XPath values for comparisons resulting in CHILD_LOOKUP
    differences could be wrong when NodeFilters were present.
    XMLUnit.NET Issue

    xmlunit-legacy will now use NewDifferenceEngine even when an
    ElementQualifier different from the built-in ones is used.

  • v2.6.3

    June 21, 2019

    🚀 The release fixes a bug in a corner-case and adds a new isNumber placeholder.

    The full list of changes:

    ➕ add a new ${xmlunit.isNumber} placeholder
    Issue #153 via PR #154 by @NathanAtClarity.

    the XPath values of a comparison should not be affected by any NodeFilter being in effect.
    Issue #156

  • v2.6.2

    August 27, 2018

    🚀 This release mainly fixes interop problems with more recent AssertJ versions and the Java module system.

    The full list of changes:

    xmlunit-assertj can now be used with AssertJ 3.9.1+ as well as 2.9.x.
    Issue #135.

    ➕ added a new TypeMatcher to the xmlunit-matchers module that can be
    👉 used to conveniently translate XPath result strings into numbers or
    booleans and verify they match type safe assetions.
    Issue #133 via PR #137.

    🛠 fixed the Automatic-Module-Name of all modules to be valid Java
    Issue #136.

  • v2.6.1

    August 16, 2018

    🚀 This release adds a new module with AssertJ support thanks to the lates XMLUnit project member @krystiankaluzny

    The full list of changes is:

    ➕ add a new module with AssertJ support. This module requires Java7 at runtime.
    Issue #117 via PRs #120, #126, #128, and #129 by @krystiankaluzny.

    🔧 The XPathFactory used by the XPath related Hamcrest matchers is now configurable.
    Issue #131 via PRs #132

  • v2.6.0

    April 22, 2018

    🚀 This release fixes a few bugs and introduces a new experimental feature. In particular XMLUnit will now configure all XML parsing code in a way that prevents XML eXternal Entity injections (XXE) by default - the only exceptions are the validation package and the legacy module.

    The full list of changes is:

    ➕ add a new experimental project xmlunit-placeholders which aims to
    👉 use ${xmlunit.FOO} expressions inside of the control document to
    👍 allow for a DSL-like approach of defining more complex tests.
    👀 This initial seed only supports ${xmlunit.ignore} which can be
    👉 used to make XMLUnit ignore the element containing this text.
    PR #105 by

    ➕ added withDocumentBuilderFactory methods to HasXPathMatcher and
    🔧 EvaluateXPathMatcher to allow explicit configuration of the
    DocumentBuilderFactory used.
    Issue #108.

    the DocmentBuilderFactory and TransformerFactory instances used
    🔧 by XMLUnit are now configured to not load any external DTDs or parse
    🔧 external entities. They are now configured according to the OWASP
    recommendations for XML eXternal Entity injection
    . The
    TransformerFactory used by the
    🔧 org.xmlunit.transform.Transformation class is still configured to
    💅 load external stylesheets, though.

    📦 For the legacy package XXE prevention has to be enabled via
    XMLUnit.enableXXEProtection explicitly.

    This is a breaking change and you may need to provide
    DocmentBuilderFactory or TransformerFactory instances of your
    own if you need to load external entities.

    📜 The SAXParserFactory and SchemaFactory instances used inside of
    📦 the validation package have not been changed as their use is
    likely to require loading of external DTDs or schemas.

    Issue #91.

    🔧 the configured NodeFilter is now applied before comparing
    DocumentType nodes.

    This change breaks backwards compatibility as the old behavior was
    to ignore DocumentType when counting the children of the
    Document node but not when actually comparing the
    DocumentType. Prior to this change if one document had a document
    type declaration but the other didn't, a HAS_DOCTYPE_DECLARATION
    difference was detected, this will no longer be the case now. If you
    want to detect this difference, you need to use a more lenient
    0️⃣ NodeFilter than NodeFilters.Default
    👀 (i.e. NodeFilters.AcceptAll) but then you will see an additional

    📦 The legacy package has been adapted and will behave as before even
    when using NewDifferenceEngine.

    Issue #116.

    ➕ added a new Source implementation
    ElementContentWhitespaceStrippedSource which is similar to
    WhitespaceStrippedSource but only affects text nodes that solely
    consist of whitespace and doesn't affect any other text nodes. Also
    ➕ added convenience ignoreElementContentWhitespace methods to
    DiffBuilder and CompareMatcher.
    Issue #119.

  • v2.5.1

    November 09, 2017

    🚀 this release fixes a bug in CompareMatcher that could throw a NoSuchElementException when combined with other hamcrest matchers.

    The full list of changes for XMLUnit for Java

    🏗 Made Travis build work with OpenJDK6 again.
    PR #101 by

    👻 CompareMatcher's describeTo method threw an exception if the
    comparison yielded no differences.
    Issue #107.

  • v2.5.0

    September 03, 2017

    🚀 this release upgrades the XSLT used by CommentLessSource to use XSLT 2.0 and adds an option to select the XSLT version.

    The full list of changes for XMLUnit for Java

    • CommentLessSource, DiffBuilder#ignoreComments and
      CompareMatcher#ignoreComments now all use XSLT version 2.0
      💅 stylesheets in order to strip comments. New constructors and methods
      have been added if you need a different version of XSLT (in
      0️⃣ particular if you need 1.0 which used to be the default up to
      XMLUnit 2.4.0).
      Issue #99.
  • v2.4.0

    July 23, 2017

    🚀 This release changes DefaultComparisonFormatter in order to simplify creating custom ComparisonFormatters.

    The full list of changes for XMLUnit for Java:

    • 0️⃣ made DefaultComparisonFormatter more subclass friendly.
      Issue #93.
  • v2.3.0

    November 12, 2016

    🚀 This release allows the schema used in W3C XML schema validation to be specified as Schema when using the JAXPValidator or the corresponding matcher.

    The full list of changes for XMLUnit for Java:

    • JAXPValidator and ValidationMatcher now accept using Schema
      instances for the schema when validating instance documents.
      Issue #89.
    • ⚡️ updated test dependency to Mockito 2.1.0
      PR #87 by @PascalSchumacher.