Выполните проверки по файлам XML, таким как файлы Oracle OSB и тестовые файлы Soap-UI - PullRequest
4 голосов
/ 29 ноября 2011

Ищем способ, которым мы можем проверять XML-файлы, помимо проверки схемы.Мы нашли несколько ссылок на Schematron, которые выглядят интересными, но изо всех сил пытаются понять, как мы можем собрать все это вместе:

История вопроса

Мы имеем дело с Oracle OSB, которая просто генерирует целую кучуXML-файлов.Мы также производим наборы тестов Soap-UI для интеграционного тестирования.

Мы только что начали формализацию наших стандартов кодирования и рекомендаций для разработчиков, что дает нам руководство при выполнении анализа кода.Однако многие из этих проверок действительно чувствуют, что они могут быть автоматизированы.Очень похоже на то, как checkstyle может выполнять проверки в нашем java-коде.

Например, в наших тестах Soap-UI мы хотим убедиться, что каждый запрос мыла имеет утверждения для соответствия схемы и ответа мыла.Эта «проверка» может быть записана в виде довольно простого xpath.

Подобные проверки в наших OSB-файлах XML, например, проверка соответствия переменных именам camelCase, что пути к ресурсам не ссылаются на файлы вне проекта, чтоприсутствует обработка ошибок верхнего уровня.

Идеальное решение

У нас есть наши сборки, работающие в Maven, и тесты soap-ui выплевывают верные отформатированные отчеты.Мы используем jenkins в качестве нашего CI-сервера, и он может подобрать эти достоверные отчеты, чтобы мы могли легко просматривать результаты тестов и видеть причину сбоя сборки.

Мы хотели бы найти что-то, что могло бы выполнить этипроверяет нас и заставляет их безошибочно сообщать в jenkins.

Лучшее, что я могу выяснить на данный момент:

  • Пусть maven запустит задачу муравья, которая запускает проверки схематрона
  • Найдите способ преобразовать вывод схематматрона в вывод безошибочного
  • Измените jenkins maven-runner, чтобы он брал достоверные отчёты, созданные

Но мне кажется, что я застрял в кроличьей нореВот.Если это правильный путь, я бы подумал, что кто-то другой уже обратился к этому, но изо всех сил пытается найти что-нибудь полезное об интеграции schematron с инструментами CI или maven.

Стоит ли исследовать schematron?

Существуют ли другие инструменты, которые более тесно интегрируются с нашей существующей настройкой, которые лучше подходят?

Ответы [ 2 ]

1 голос
/ 28 января 2012

Вы можете попробовать использовать XmlUnit для таких целей.

В этом сценарии вы должны написать свои чеки в форме тестов JUnit. Простые проверки на основе XPath легко выполняются с помощью методов утверждения XmlUnit, таких как assertXpathExists, assertXpathsEqual и т. Д.

Более сложные проверки могут быть реализованы с использованием пользовательского NodeTester .

0 голосов
/ 19 июля 2013

некоторый код Python может помочь, для простого рабочего примера Checkstyle с OSB см .:

http://www.javamonamour.org/2013/07/lintcheckstyle-for-osb.html

Я использовал Schematron в прошлом, он просто недостаточно гибок.

...