Velocity Template Engine插件或扩展?

时间:2018-06-29 04:40:08

标签: unit-testing code-coverage velocity velocity-template-language

有人尝试构建Velocity模板引擎扩展或插件吗?

我们的团队大量使用Velocity模板语言进行API输入/输出转换。由于VTL代码中包含许多复杂的逻辑,因此我们实现了对VTL代码进行单元测试的方法。但是,当前的问题是无法测量这些单元测试的代码覆盖率。我们想要实现一个VTL Engine扩展,以在执行这些测试时计算覆盖率。有没有人有任何见识或类似的经验?

谢谢!

1 个答案:

答案 0 :(得分:0)

Velocity还没有此功能。

与此同时,您可以:

  • Velocity JIRA上打开一个问题,以便有机会被纳入下一版本
  • 解决问题的方法:准备(自动!)模板的副本,其中每行均带有带有文件和行号的注释作为前缀,并使用测试输出来关联覆盖率
  • 修补速度可以做到这一点,并不难:
    • org.apache.velocity.runtime.parser.Node.java类需要一个新的int字段,visited初始化为0
    • 在所有其他具有这种方法的解析器节点的所有render()方法中,使每个visited方法递增render()
    • 在测试用例之后,使用扩展了o.a.v.runtime.parser.visitor.BaseVisitor的类来为您的每个模板收集每个节点的位置信息和渲染数量

如果您在此最后一个选项上都成功,请确保提交补丁!