集成中可能出现的问题:
- preverify error. 由于cobertura4j2me是通过注入.class文件后当注入部分执行时会向某个文件写入信息的方式来完成coverage统计的,所以需要JSR75的支持。而且由于用到了java.lang下的一些类库,需要CLDC1.1的支持。antenna如果不指定wtk.midpapi的话默认的类库是在wtk.cldc.version和wtk.midp.version中设定的两个包,也就是${wtk.home}/lib/下的midpapiX0.jar和cldcapi1X.jar(X代表变化的版本号)两个文件。我们需要人为的设置JSR75.jar到wtk.midpapi中。另外,如果设置了wtk.midpapi的话,antenna就只会调用其中设置的jar文件,所以我们也需要将指定的midpapiX0.jar和cldcapi1X.jar(X代表变化的版本号)添加到wtk.midpapi中去。
- 成功运行但是report中都是0%。可能情况有好多种。第一,可能是没有生成data文件,默认的文件名是cobertura.ser,位于测试设备的path.device.data目录下。cobertura4j2me只有在midlet的destroy()函数启动时才会输出到文件中,并在consol上有输出:Cobertura for J2ME [BASIC] - Data saved!!。务必确保这句话出现。否则请检查你的模拟器或者手机的文件系统。第二,可能是data文件没有被copy到antenna的base目录下。由于生成report时需要读入生成的data文件,所以务必保证data文件被copy到了你的项目文件树的根目录下并删除原文件,以防止下一次进行test时的结果收到影响。