【问题标题】:Velocity Template Engine plugin or extension?速度模板引擎插件或扩展?
【发布时间】:2018-06-30 08:09:14
【问题描述】:

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

我们的团队大量使用 Velocity 模板语言进行 API 输入/输出转换。由于 VTL 代码中有很多复杂的逻辑,我们实现了一种对 VTL 代码进行单元测试的方法。然而当前的问题是没有办法测量这些单元测试的代码覆盖率。我们想要实现一个 VTL 引擎扩展来计算执行这些测试时的覆盖率。有没有人有任何见解或类似经验?

谢谢!!

【问题讨论】:

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


    【解决方案1】:

    Velocity 还没有这个功能。

    与此同时,您可以:

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

    如果您在最后一个选项中成功,请务必提交补丁!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-14
      • 1970-01-01
      • 2018-04-30
      • 2014-11-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多