>有人尝试过构建 Velocity 模板引擎扩展或插件吗?
我们的团队大量使用 Velocity 模板语言进行 API 输入/输出转换。由于 VTL 代码中存在许多复杂的逻辑,因此我们实现了一种方法来对 VTL 代码进行单元测试。但是,当前的问题是无法衡量这些单元测试的代码覆盖率。我们希望实现 VTL 引擎扩展,以在执行这些测试时计算覆盖范围。有人有任何见解或类似经验吗?
谢谢!!
Velocity 还没有这个功能。
同时,您可以:
- 在Velocity JIRA上打开一个问题,以便它有机会包含在下一个版本中
- 解决问题:准备(自动!(模板的副本,其中每行都以带有文件和行号的注释为前缀,并使用测试输出来关联覆盖范围
- 补丁速度 要做到这一点,这并不难:
org.apache.velocity.runtime.parser.Node.java
类需要一个新的 int 字段,visited
初始化为 0- 使每个
render()
方法在具有此类方法的所有其他解析器节点的所有render()
方法中visited
增量 - 在测试用例之后,使用类扩展
o.a.v.runtime.parser.visitor.BaseVisitor
收集每个模板的每个节点位置信息和渲染数
如果您在最后一个选项中成功,请务必提交补丁!