如何在 Google Appengine 代码上使用 Google CodePro Coverage?

发布于 2024-10-19 01:23:27 字数 1193 浏览 5 评论 0原文

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

其他人是否获得过使用 Google Appengine 项目进行 Google CodePro 的报道?

以下是我正在寻求的调查线索:
a) 多个级别的字节码工程不能协同工作。 Ie 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)

I'm trying to use Google's CodePro Coverage tool to measure the coverage of my unit tests on a Google AppEngine project. However I'm getting various ClassFormatError exceptions on running the tests.

Have others got Google CodePro coverage working with a Google Appengine project?

Here are the lines of enquiry I'm pursuing:
a) Multiple levels of byte code engineering not working together. I.e. CodePro is fighting the GAE JPA implementation (DataNucleus instruments persistent classes).
b) Some RTFM error on my part

Here is the exception:

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)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

感受沵的脚步 2024-10-26 01:23:27

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

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

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

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

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

我想我应该考虑简单地使用 EMMA(CodePro 是基于它的)。
从长远来看,我需要通过自动构建生成覆盖率报告。 CodePro 似乎不可能实现这一点。

Here's an answer to my own question, but I don't like it much.

I made a completely new eclipse coverage project, and instrumented this project with CodePro.
In this coverage project I included the source code for my GAE project and my unit test project.
I made a boilerplate class in the coverage project that uses JUnitCore to call the JUnit TestCases in the unit test project.

Results for the GAE project are not displayed until you do at least one run with that project instrumented. The coverage run view then appears to publish stats against that project.

It feels really ugly and I'm really not very impressed with CodePro. It's under par for a google tool.

I've also looked into using the codepro ant tasks however the coverage instrumentation task has gone. It used to be called when it was part of instantiations CodePro product.

I think I shall look at simply using EMMA (on which CodePro is based).
Long term I need coverage reports to be generated from an automated build. Something that doesn't appear possible with CodePro.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文