我正在尝试 Approvals.Verify xml,但问题是属性的顺序。在一些元素中,它们在我的计算机和 Jenkins 中的顺序不同。来自其他question我发现改变类中属性的顺序。这有点起作用:它改变了属性的顺序,但现在 Jenkins 的顺序是我计算机中以前的顺序,反之亦然。因此,更改属性在类中的顺序没有任何帮助。
有没有办法使用 ApprovalTests 来忽略 xml 属性的顺序?或者我怎样才能说出 xml 序列化中属性的确切顺序?或者其他提示?
最佳答案
根据 XML 标准第 3.1 节,开始标记或空元素标记中属性规范的顺序并不重要。因此 XML 属性的更改不应触发单元测试失败.
并且,来自 reference source ,看来该方法 XmlApprovals.VerifyOrderedXml()
通过内部调用 XmlUtils.FormatXmlWithOrderedAttributes()
在验证之前规范属性的顺序它递归地对所有属性进行排序。因此这个方法应该可以满足您的需求。
关于c# - 将 xml 与 ApprovalTests 进行比较时忽略属性的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39904936/