【发布时间】:2018-06-13 02:40:25
【问题描述】:
我们有一个使用 jdo enhancement 的 gradle 项目。基本上:
增强器对 Java 编译器生成的字节码进行后处理,添加必要的字段和方法来实现所需的持久性功能。
当我尝试使用 open clover plugin 添加测试覆盖率时 - 我的测试开始失败。这是因为 OpenClover 使用了source code instrumentation。
OpenClover 移动了“jdo-enhanced”类作为备份 - 并构建了自己的类的插桩版本,因此丢失了所有 jdo-enhancements。
考虑到这个难题,是否可以同时使用 openClover(源代码检测)和 jdo 增强功能?理论上有可能吗?
【问题讨论】:
-
为什么不能“JDO 增强”编译的类,然后再运行 Clover 增强?
-
据我了解,clover 正在将其“仪器”代码添加到 .java 文件中,然后对其进行编译。所以如果我在 jdo 增强后运行 clover,它会回到 .java 并忽略增强器直接修改的字节码。
-
我实际上有点误解了jdo-enhancement,它对“字节码”而不是“源”进行后处理。所以我想我可以尝试在 clover 之后运行 jdo-enhancement 看看会发生什么(如果它会 jdo-enhance clover-instrumented 类)。
标签: jdo instrumentation test-coverage clover