Игнорировать порядок атрибутов при сравнении xml с ApprovalTests

Я пытаюсь одобрить. Проверить xml, но проблема в порядке атрибутов. В нескольких элементах они находятся в другом порядке в моем компьютере и Дженкинс. Из другого вопроса я нашел, чтобы изменить порядок свойств в классе. Это как-то сработало: оно изменило порядок атрибутов, но теперь это порядок Дженкинса, который был на моем компьютере, и наоборот. Так что никакой помощи от изменения порядка свойств в классе.

Есть ли способ использовать ApprovalTests, чтобы игнорировать порядок атрибутов XML? Или как я могу сказать точный порядок для атрибутов в сериализации XML? Или другие намеки?

1 ответ

Решение

В соответствии с разделом 3.1 стандарта XML, порядок спецификаций атрибутов в начальном теге или теге пустого элемента не имеет значения. Таким образом, изменение атрибута XML не должно вызывать сбой модульного теста.

И из справочного источника выясняется, что метод XmlApprovals.VerifyOrderedXml() нормализует порядок атрибутов перед проверкой путем внутреннего вызова XmlUtils.FormatXmlWithOrderedAttributes() который рекурсивно сортирует все атрибуты. Таким образом, этот метод должен удовлетворить ваши потребности.

Другие вопросы по тегам