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

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

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

12
задан GraemeF 25 June 2010 в 12:47
поделиться

5 ответов

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

5
ответ дан 2 December 2019 в 21:42
поделиться

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

2
ответ дан 2 December 2019 в 21:42
поделиться

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

1
ответ дан 2 December 2019 в 21:42
поделиться

Если вы знакомы с 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
ответ дан 2 December 2019 в 21:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: