Как распечатать все различия при сравнении двух файлов xml с использованием XMLUnit2 - PullRequest
0 голосов
/ 24 января 2020

Используя XMLUnit2 для сравнения двух xml файлов, используя groovy в soapui, он успешно сравнивает два файла. Хотел бы распечатать все обнаруженные различия, но он печатает только первое отличие. XMLUnit1 предполагает печать всех различий, но хотел бы использовать XMLUnit2.

Если у кого-то есть идеи, как печатать, пожалуйста, помогите мне, будет признателен.

Использование кода :

diff = DiffBuilder.compare(resxml1)
        .withTest( resxml2)
        .withNodeFilter(nodeFilter)
        .withAttributeFilter(attributeFilter)
        .ignoreComments()
        .ignoreWhitespace()
        .ignoreElementContentWhitespace()
  .checkForSimilar()
        .withNodeMatcher(new DefaultNodeMatcher(new ByNameAndTextRecSelector(), ElementSelectors.byName))
         .build();
print diff

1 Ответ

0 голосов
/ 24 января 2020

Объект Diff, полученный в результате сравнения, содержит все различия, и вы можете получить к ним доступ с помощью diff.getDifferences(). Метод toString для Diff, который вы вызываете, когда вы print, печатает только первое различие.

Поэтому, если вы хотите распечатать все различия, вы должны сделать что-то вроде

for (Difference d : diff.getDifferences()) {
    System.err.println(d);
}

Для большего контроля над выходом взгляните на ComparisonFomatter и метод Difference one-arg toString.

...