Как выполнить автоматическое тестирование таблиц стилей XSLT? - PullRequest
12 голосов
/ 25 июня 2010

У меня есть несколько все более сложные таблицы стилей XSLT, и было бы полезно, если бы я мог выполнить некоторые тесты на них в рамках процесса сборки CI и даже использовать TDD для их разработки в первую очередь. В настоящее время я использую Visual Studio для запуска фрагментов XML через таблицы стилей и проверяю результаты вручную.

Что бы все порекомендовали для этого? В идеале было бы легко интегрироваться в CruiseControl.NET и / или MsBuild.

Ответы [ 5 ]

5 голосов
/ 25 июня 2010

Я использовал мою стандартную систему модульного тестирования с хорошей библиотекой для тестирования вывода. В моем текущем проекте вывод XHTML, и я использую JUnit и xml-unit. В предыдущем проекте вывод был XSL-FO, и я использовал python-unit и xmllib. Это позволяет мне постепенно построить XSLT (используя TDD), выполнив единственную проверку только части вывода. Если вывод - текст, я мог бы сравнить весь результат. Я использовал свое текущее программное обеспечение для модульного тестирования по двум причинам. Во-первых, я был знаком с этим, поэтому было быстрее начать. Во-вторых, было очень легко автоматизировать тестирование со сборкой, если оно уже использовало тип теста, которого ожидала сборка.

2 голосов
/ 25 июня 2010

Если вы знакомы с Apache Cocoon, вы можете использовать CoUnit , который использует xslt-unit под капотом.

Тестовые случаи выглядят так:

<testcase id="03-reverse" ignore-whitespace="true">
  <input>
    <text-to-reverse> 
      The text in this element 
      <embedded-element/> 
      will be reversed.
    </text-to-reverse>
  </input>
  <expect>
    <text-to-reverse> 
      tnemele siht ni txet ehT 
      <embedded-element/> 
      .desrever eb lliw
    </text-to-reverse>
  </expect>
  <xslt src="reverse.xsl"/>
</testcase>
2 голосов
/ 25 июня 2010

Я думаю, что написал бы для них модульные тесты на выбранном вами языке программирования (например, C #).Имейте коллекцию входных xmls и соответствующих ожидаемых выходов и просто запустите xsl на них и убедитесь, что они соответствуют выходам.Я не уверен, что есть более разумный способ провести тестирование.

1 голос
/ 25 июня 2010

Я работаю над проектом, который использует XSL-T.У нас есть несколько управляемых данными тестов с Visual Studio.Я также считаю, что N-Unit имеет некоторые функции тестирования данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...