我正在尝试使用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工具任务已经消失了。它曾经是实例化CodePro产品的一部分而被调用。
我想我将仅使用EMMA(基于CodePro的EMMA)进行研究。
从长远来看,我需要从自动生成的覆盖率报告。 CodePro似乎无法提供某些功能。