c# - 将 xml 与 ApprovalTests 进行比较时忽略属性的顺序

标签 c# xml xmlserializer approval-tests

我正在尝试 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/

相关文章:

c# - 单场比赛中有多个 Regexoptions?

mysql - 如何修复 XML 导入 ShopWare 5.4.6 期间出现的 'Supplier not found' 错误

xml - 如何在 ActionScript 中针对 XML 架构测试 XML 的有效性?

xml - 打开巨大的 XML 文件和 pretty-print

c# - asp.net mvc生成数据下载文件

c# - 适用于 Windows Mobile 的 Silverlight 中的 Storyboard.GetTarget

javascript - xmlserializer 从 xlink :html svg image tag 剥离 xlink

c# - M-V-VM : What is the best way to handle model data that is generated dynamically from XmlSerialized data

c# - 未序列化的结构列表列表。 System.RuntimeType 由于其保护级别而无法访问。只能处理公共(public)类型

C# MVC 4 模型改变 float ?