Плагин Velocity Template Engine или расширение? - PullRequest
0 голосов
/ 29 июня 2018

Кто-нибудь пробовал создавать расширение или плагин для шаблонного движка Velocity?

Наша команда активно использует язык шаблонов Velocity для преобразования ввода-вывода API. Поскольку в коде VTL много сложной логики, мы реализовали способ модульного тестирования кода VTL. Однако текущая проблема заключается в том, что нет способа измерить охват кода этих модульных тестов. Мы хотим реализовать расширение VTL Engine для расчета покрытия при выполнении этих тестов. У кого-нибудь есть понимание или подобный опыт?

Спасибо !!

1 Ответ

0 голосов
/ 29 июня 2018

Velocity пока не имеет этой функции.

Между тем, вы можете:

  • открыть вопрос по Velocity JIRA , чтобы он мог получить шанс быть включенным в следующую версию
  • Обойти проблему: подготовить (автоматически!) Копию ваших шаблонов, где каждая строка начинается с комментария с номером файла и строки, и использовать результаты тестов для сопоставления покрытия
  • патч Velocity, чтобы сделать это, это не так сложно:
    • класс org.apache.velocity.runtime.parser.Node.java нуждается в новом поле int, visited инициализирован в 0
    • делает каждое приращение render() метода visited во всех render() методах всех других узлов синтаксического анализатора, которые имеют такой метод
    • после тестового примера используйте класс, расширяющий o.a.v.runtime.parser.visitor.BaseVisitor, чтобы собрать для каждого вашего шаблона информацию о местоположении каждого узла и количестве визуализаций

И если вы добились успеха в этом последнем варианте, обязательно отправьте патч!

...