当前位置: 首页 > 知识库问答 >
问题:

JAVAlang.ClassFormatError:类文件中的方法代码长度75567无效

冯渝
2023-03-14

向聪明的人们问好,

我在使用cobertura和mockito

当我在eclipse中运行junit测试用例时,所有的测试用例都通过了。但当我跑的时候,

mvn cobertura

我有以下错误。

JAVAlang.ClassFormatError:类文件中的方法代码长度75567无效

我研究了一下,知道这是因为JVM为metod分配的内存大小。

我的测试类是指一个遗留类,它有一个非常庞大的静态方法。因为有太多的影响,我不能去接触传统或主要的折射类。

如果有任何想法可以在不触及主类的情况下摆脱这个异常,我们将不胜感激。

谢谢普拉迪普

共有2个答案

龚凯泽
2023-03-14

您可以尝试为测试环境禁用字节码验证(通过在JVM启动选项中添加-noverify)。

当然,这不是你在生产环境中应该做的事情;但考虑到您的需求,这可能是您获得测试覆盖率的唯一机会。

但是接下来:准备好迎接更多丑陋的惊喜。Powermock(ito)因打破覆盖测量而“出名”。事实上,我认为你让这样的设置可靠工作并创造强大覆盖数字的机会相当小。

段干麒
2023-03-14

很简单,从Cobertura工具中排除遗留类。使用Maven时,如下所示:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>cobertura-maven-plugin</artifactId>
    <version>2.6</version>
    <configuration>
        <instrumentation>
            <excludes>
                <exclude>aaa/**/Legacy.class</exclude>
            </excludes>
        </instrumentation>
    </configuration>
</plugin>
 类似资料:
  • 我在尝试在Android Studio上构建项目时遇到此错误。尝试在res/raw/file.dat.上使用二进制文件压缩最终工件时会发生这种情况 这里解释了这样的解决方案:Maven在构建jar时破坏了源/主/资源中的二进制文件 将文件或res/raw文件夹添加到构建时的“false”筛选中。但问题是,我使用JFrog Artictorial配置了我的内部maven存储库,如下所示:https:

  • 本文向大家介绍获取中文字符串的实际长度代码,包括了获取中文字符串的实际长度代码的使用技巧和注意事项,需要的朋友参考一下 JS中默认中文字符长度和其它字符长度计算方法是一样的,但某些情况下我们需要获取中文字符串的实际长度,代码如下:

  • 当我尝试运行main.py时,出现此错误:ModuleNotFoundError:没有名为'曲库'的模块 vscode似乎无法识别目录文件夹中文件的导入,但在pycharm中它正常运行。vscode需要什么才能识别这种导入?

  • 我试图通过将我的. xlsx作为资源流传递来使用Apache-POI创建一个xlsx工作簿对象: 在传递模板时,我可以成功地实例化工作簿.xlsx通过 FileInputStream 和本地文件路径,但是当我传递资源流时,我得到一个异常: 我传递的.xlsx不应该被压缩,但也许这就是它与资源流的工作方式。关于如何通过资源访问将文件传递到Apache-POI的任何想法?

  • 本文向大家介绍python获取中文字符串长度的方法,包括了python获取中文字符串长度的方法的使用技巧和注意事项,需要的朋友参考一下 如下所示: 以上这篇python获取中文字符串长度的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

  • 本文向大家介绍Lua中获取table长度的方法,包括了Lua中获取table长度的方法的使用技巧和注意事项,需要的朋友参考一下 官方文档是这么描述#的: 取长度操作符写作一元操作 #。 字符串的长度是它的字节数(就是以一个字符一个字节计算的字符串长度)。 table t 的长度被定义成一个整数下标 n 。 它满足 t[n] 不是 nil 而 t[n+1] 为 nil; 此外,如果 t[1] 为 n