我正在尝试使用 XMLUnit 1.2 比较 2 个 XML 文件。我正在使用 RecursiveElementNameAndTextQualifier() 限定符。
在我的 XML 中更改某些实体 order 的 order 时,它会导致 XMLUnit 在某些情况下传递而在其他情况下失败。
我的 XML 文件看起来像这样,我将它与一个类似的副本进行比较,其中一个属性对等点的简单位置交换。
<root>
<ent>
<value>
<int>1</int>
</value>
<value>
<int>2</int>
</value>
</ent>
<ent>
<value>
<int>3</int>
</value>
<value>
<int>4</int>
</value>
</ent>
</root>
在其中一个 XML 文件中将 int: 1 与 int: 2 交换时,测试失败。但是当用 int:3 交换 int:4 时,它会一直通过。
这是我的测试代码:
public void testRecursiveElement() throws Exception {
InputSource xml1 = new InputSource("xml1.xml");
InputSource xml2 = new InputSource("xml2.xml");
Diff myDiff = new Diff(xml1, xml2);
myDiff.overrideElementQualifier(new RecursiveElementNameAndTextQualifier() );
assertXMLEqual("Not similar", myDiff, true);
}
您能建议问题是什么,以及为什么 XMLUnit 在第一种情况下检测到差异而不是在第二种情况下检测到差异。这个问题有什么解决办法吗?