我正在尝试使用Google的CodePro Coverage工具来衡量我对Google AppEngine项目的单元测试的覆盖率。但是我在运行测试时遇到各种ClassFormatError异常。

其他人是否有与Google Appengine项目一起工作的Google CodePro报道?

以下是我要进行的询问:
a)多个级别的字节码工程无法协同工作。即CodePro正在与GAE JPA实现(DataNucleus仪器的持久类)作斗争。
b)我有一些RTFM错误

这是例外:

java.lang.ClassFormatError: Invalid length 65525 in LocalVariableTable in class file
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
    at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248)

最佳答案

这是我自己的问题的答案,但我不太喜欢。

我做了一个全新的Eclipse覆盖项目,并使用CodePro对该项目进行了检测。
在此覆盖项目中,我包括了GAE项目和单元测试项目的源代码。
我在coverage项目中创建了样板类,该类使用JUnitCore调用单元测试项目中的JUnit TestCases。

只有使用该项目执行至少一次运行,GAE项目的结果才会显示。然后,coverage运行视图似乎针对该项目发布了统计信息。

感觉真的很丑,我对CodePro的印象也不是很深刻。对于Google工具而言,它的价格低于标准水平。

我也研究过使用codeproant任务,但是coverage工具任务已经消失了。它曾经是实例化Code​​Pro产品的一部分而被调用。

我想我将仅使用EMMA(基于CodePro的EMMA)进行研究。
从长远来看,我需要从自动生成的覆盖率报告。 CodePro似乎无法提供某些功能。

09-25 17:31