我想比較使用XMLUnit 1.2的2個XML文件。我正在使用RecursiveElementNameAndTextQualifier()限定符。使用XMLUnit比較XML RecursiveElementNameAndTextQualifier
當在我的XML中更改某些實體順序的順序時,它會導致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>
當用int:2交換int:1時,在其中一個XML文件中,測試失敗。但是當用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測試在第一種情況下,而不是在第二種情況下檢測出差異。有沒有解決這個問題的方法?