我正在尝试Approvals.Verify xml,但问题是属性的顺序。在少数元素中,它们在我的计算机和Jenkins中的顺序不同。从其他question我发现改变了类中属性的顺序。这有点奏效:它改变了属性的顺序,但现在Jenkins的顺序就像以前一样在我的计算机中,反之亦然。所以在课堂上改变了属性的顺序没有帮助。
有没有办法使用ApprovalTests忽略xml属性的顺序?或者如何在xml序列化中说出属性的确切顺序?或其他提示?
答案 0 :(得分:3)
根据XML标准第3.1节, start-tag或empty-element标记中属性规范的顺序并不重要。因此,XML属性的更改不应触发单元测试失败。
并且,从reference source开始,方法XmlApprovals.VerifyOrderedXml()
似乎通过内部调用XmlUtils.FormatXmlWithOrderedAttributes()
来递归排序所有属性,从而在验证之前规范化属性的顺序。因此,这种方法应该满足您的需求。