我有一个进行REST调用的webapp。此webapp与cobertura仪表类捆绑在一起。从REST资源中,使用反射调用公共服务API(这样做是为了克服OSGI的一些类加载问题)。
现在代码覆盖率存在问题。当我生成cobertura代码覆盖率报告时,我看到正在捕获覆盖范围,直到覆盖范围内忽略资源和所有反射公共方法调用。
我们是否有办法获得反射方法调用的覆盖范围。
请在下面找到代码示例
for (Method method : methods) {
if (method.getName().equals("getAbc")) {
abc= (List<Abc>) method.invoke(**service**, serviceContextInfo);
return SomeUtil.getSuccessResponse(abc, serviceContext);
}
}
未从作为核心服务调用的“method.invoke”捕获覆盖范围。我再次可以在SomeUtil类中看到响应更新的覆盖范围。
注意:这是一个OSGI环境(apache felix),被调用的方法位于与调用它的位置不同的类加载器中。