我正在尝试使用谷歌的CodePro覆盖率工具来衡量我在谷歌AppEngine项目上单元测试的覆盖率。但是,我在运行测试时遇到了各种ClassFormatError异常。
其他人有没有在谷歌应用程序引擎项目中获得谷歌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)发布于 2011-03-08 00:12:55
这是我自己问题的答案,但我不太喜欢。
我创建了一个全新的eclipse覆盖项目,并使用CodePro对该项目进行了测试。在这个复盖项目中,我包含了我的GAE项目和单元测试项目的源代码。我在coverage项目中创建了一个样板类,它使用JUnitCore在单元测试项目中调用JUnit TestCases。
GAE项目的结果不会显示,直到您使用该项目进行了至少一次运行。coverage run视图随后显示为针对该项目发布统计数据。
感觉真的很难看,我对CodePro的印象也不是很好。这是一个低于标准的谷歌工具。
我还研究了使用codepro ant任务,但是覆盖率插装任务已经消失了。当它是instantiations CodePro产品的一部分时,它会被调用。
我想我应该简单地使用EMMA ( CodePro就是基于它的)。从长远来看,我需要从一个自动化的构建生成覆盖报告。一些使用CodePro看起来不可能实现的事情。
https://stackoverflow.com/questions/5094865
复制相似问题