1

我正在尝试使用 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)
4

1 回答 1

0

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

我制作了一个全新的 Eclipse 覆盖项目,并使用 CodePro 对这个项目进行了检测。在这个覆盖项目中,我包含了我的 GAE 项目和单元测试项目的源代码。我在覆盖项目中创建了一个样板类,它使用 JUnitCore 来调用单元测试项目中的 JUnit TestCases。

GAE 项目的结果在您至少执行一次运行该项目后才会显示。然后,覆盖运行视图似乎会针对该项目发布统计信息。

感觉真的很难看,我对 CodePro 的印象真的不是很深。它低于谷歌工具的标准。

我也研究过使用 codepro ant 任务,但是覆盖检测任务已经消失。当它是实例化 CodePro 产品的一部分时,它曾经被调用。

我想我应该看看简单地使用 EMMA(CodePro 所基于的)。从长远来看,我需要从自动构建中生成覆盖率报告。CodePro 无法实现的功能。

于 2011-03-07T16:12:54.797 回答