Подтвердить что ты не робот

Как выполнить автоматическое тестирование таблиц стилей XSLT?

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

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

4b9b3361

Ответ 1

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

Ответ 2

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

Ответ 4

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

Тесты выглядят следующим образом:

<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>

Ответ 5

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