Игнорировать порядок атрибутов при сравнении xml с ApprovalTests
Я пытаюсь одобрить. Проверить xml, но проблема в порядке атрибутов. В нескольких элементах они находятся в другом порядке в моем компьютере и Дженкинс. Из другого вопроса я нашел, чтобы изменить порядок свойств в классе. Это как-то сработало: оно изменило порядок атрибутов, но теперь это порядок Дженкинса, который был на моем компьютере, и наоборот. Так что никакой помощи от изменения порядка свойств в классе.
Есть ли способ использовать ApprovalTests, чтобы игнорировать порядок атрибутов XML? Или как я могу сказать точный порядок для атрибутов в сериализации XML? Или другие намеки?
1 ответ
В соответствии с разделом 3.1 стандарта XML, порядок спецификаций атрибутов в начальном теге или теге пустого элемента не имеет значения. Таким образом, изменение атрибута XML не должно вызывать сбой модульного теста.
И из справочного источника выясняется, что метод XmlApprovals.VerifyOrderedXml()
нормализует порядок атрибутов перед проверкой путем внутреннего вызова XmlUtils.FormatXmlWithOrderedAttributes()
который рекурсивно сортирует все атрибуты. Таким образом, этот метод должен удовлетворить ваши потребности.