Плагин Velocity Template Engine или расширение?
Кто-нибудь пробовал создавать расширение или плагин для шаблонного движка Velocity?
Наша команда активно использует язык шаблонов Velocity для преобразования ввода-вывода API. Поскольку в коде VTL много сложной логики, мы реализовали способ модульного тестирования кода VTL. Однако текущая проблема заключается в том, что нет способа измерить охват кода этих модульных тестов. Мы хотим реализовать расширение VTL Engine для расчета покрытия при выполнении этих тестов. У кого-нибудь есть понимание или подобный опыт?
Спасибо!!
1 ответ
У Velocity пока нет этой функции.
Между тем, вы можете:
- откройте вопрос о Velocity JIRA, чтобы получить возможность быть включенным в следующую версию
- Обойти проблему: подготовить (автоматически!) копию ваших шаблонов, где каждая строка начинается с комментария с номером файла и строки, и использовать результаты тестов для сопоставления покрытия
- Для этого исправим Velocity, это не так сложно:
org.apache.velocity.runtime.parser.Node.java
классу нужно новое поле int,visited
инициализируется до 0- сделать каждый
render()
приращение методаvisited
во всехrender()
метод всех других узлов синтаксического анализатора, которые имеют такой метод - после теста используйте расширение класса
o.a.v.runtime.parser.visitor.BaseVisitor
собрать для каждого вашего шаблона информацию о местоположении каждого узла и количестве визуализаций
И если вы преуспели в этом последнем варианте, обязательно отправьте патч!