XMLUnit extends JUnit and NUnit to enable unit testing of XML. It compares a control XML document to a test document or the result of a transformation, validates documents, and compares the results of XPath expressions.
The Java version is currently way more mature than the .NET version.
Well, I didn't use it a lot, but I have an opinion already. 1) API - why not to copy Java version? Is it very comfortable to create new XmlDiff AND always call Compare method? Similar and Identical much more descriptive than Equals and Identical. BTW where is .Net naming (IsIdentical, IsSimilar)? 2) About features - if attributes placed in different order, xml is not identical. If there is a white space, xml is not identical. It was enough for me, to stop using this XmlUnit version. Also I didn't find difference in behavior between Equal and Identical. 3) There is no xml documentation. Why should I spend time reviewing all your classes and guessing what they are doing? So, I didn't find any advantages of .Net XmlUnit - comparing strings gives same result, but saves your time. P.S. I found, that DiffConfiguration can set validation of attriubutes order and white spaces. But anyway, output of xmlunit is still awful - no tag name of error, no char position. It is more useless, than string comparision, because last one shows WHAT is wrong. Not just difference Id and red line. Completely useless library.