2016-10-06 5 views
0

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

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

+0

Похоже, вам нужно провести спокойную, но очень интенсивную дискуссию с Дженкинсом о том, чтобы не скрещивать его атрибуты. На самом деле, вы можете спокойно распоряжаться самим Дженкинсом. Но если вы могли бы предоставить достаточно кода для воспроизведения проблемы, это может быть другим способом решения вашей проблемы. –

+0

В соответствии с [Стандартом XML 3.1] (https://www.w3.org/TR/REC-xml/#sec-starttags) ** порядок спецификаций атрибутов в теге start-tag или теге элемента не имеет значения. ** Поэтому, если ApprovedTests не игнорирует порядок атрибутов, то это ошибка в ApprovedTests. Для сравнения ['XNode.DeepEquals()'] (https://msdn.microsoft.com/en-us/library/system.xml.linq.xnode.deepequals (v = vs.110) .aspx) игнорирует порядок атрибутов , так что, возможно, вы можете это использовать. – dbc

+0

Как говорится, из [источника ссылки] (https://github.com/approvals/ApprovalTests.Net) появляется ['XmlApprovals.VerifyOrderedXml()'] (https://github.com/approvals/ApprovalTests .Net/blob/master/ApprovalTests/Xml/XmlApprovals.cs) пытается нормализовать порядок атрибутов. Это метод, который вы используете? Если нет, можете ли вы предоставить [mcve]? – dbc

ответ

2

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^