在用Ant + Junit+ cobertura 编译执行代码做单元测试覆盖率的时候
出现如下错误:
Invalid method Code length 68617 in class file .././././.BaseDCTRSSTATable
java.lang.ClassFormatError: Invalid method Code length 68617 in class file .././././.BaseDCTRSSTATable
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at
字面意思是说方法长度无效,本来java虚拟机规范中有规定:方法个数,参数个数,域个数 都有 64k 的限制。
BaseDCTRSSTATable.java源码超过6千行,但是我对比了下编译生成的class文件,BaseDCTRSSTATable本身没有超过64K,既然本身没有超过64K,那么里面也不可能有方法或者参数超过64K了,但是cobertura 执行的时候,载入class到instrument目录时,BaseDCTRSSTATable文件变大了变成了超过140K,这就不知道为啥了。后来没办法,修改了这个类,拆分了几个方法,才解决了问题。
分享到:
相关推荐
总的来说,"Junit+ant+cobertura示例"是一个展示如何使用JUnit进行单元测试,通过Ant进行自动化构建,并利用Cobertura进行代码覆盖率分析的实践案例。这样的组合可以帮助开发者更高效地管理和提升代码质量,确保软件...
EMMA,它是一个免费、开源的、用来衡量单元测试覆盖度... EMMA生成的报告类似于Cobertura(另一个功能类似于EMMA的开源工具),请参考:用Ant+JUnit+Cobertura轻松控制单元测试质量:http://ouzhong.blog.hexun.com/323
它能够帮助开发者测量和报告程序代码的测试覆盖率,即多少代码被单元测试执行过。这对于确保软件的质量和可靠性至关重要,因为未经过测试的代码可能会隐藏潜在的错误。 在描述中提到的"ant+junit+cobertura的build....
同时,`JUnit`的测试结果可以被`Ant`记录并输出,以便于分析测试覆盖率和失败原因。这样的自动化测试流程不仅节省了手动测试的时间,还能帮助团队尽早发现和修复bug,提升代码质量。 为了进一步扩展这个demo,你...
将Cobertura与Ant结合,开发者可以在执行Ant构建时轻松地添加测试覆盖率检查,无需额外的复杂设置。 Cobertura的使用步骤大致如下: 1. 下载:首先,你需要从官方网站或者提供的压缩包中下载Cobertura的对应版本,...
总之,Cobertura作为一款强大的测试覆盖率工具,为Java开发者提供了一种直观的方式来评估测试的质量,并且能促进更全面的单元测试实践。通过熟练使用Cobertura,开发者可以确保他们的代码被充分测试,提高软件的稳定...
**Cobertura 1.9.4.1:单元测试覆盖率工具详解** Cobertura 是一个开源的 Java 代码覆盖率工具,主要用于衡量软件项目中单元测试的覆盖程度。版本 1.9.4.1 是该工具的一个稳定版本,它为开发者提供了详细的信息,...
4. 覆盖率工具:结合JaCoCo或Cobertura,可以获取测试覆盖率报告,进一步提升测试质量。 总之,JUnit与Ant的结合使用能有效提高Java项目的测试效率和质量,通过自动化测试和构建,确保软件的稳定性和可靠性。同时,...
3. 集成测试框架:Cobertura可以与JUnit、TestNG等测试框架配合使用,确保在测试运行时收集覆盖率数据。 4. 在Eclipse中运行Ant任务:通过Eclipse的Ant视图运行配置好的构建文件,执行测试并生成覆盖率报告。 5. ...
此外,ANT可以生成测试覆盖率报告,如Cobertura或JaCoCo,帮助开发者了解测试覆盖了多少代码。这对于优化测试策略,确保所有关键路径都被测试到,非常有帮助。 在实际应用中,ANT还可以与其他工具如Maven或Gradle...
其中,测试覆盖率是衡量代码质量的关键指标之一。Cobertura是一款开源的Java代码覆盖率工具,它能够帮助开发者了解哪些部分的代码已经被测试覆盖,哪些部分还需要进一步编写测试用例。 #### 二、Cobertura简介 ...
Cobertura是一款开源的Java代码覆盖率工具,它用于测量Java程序单元测试的覆盖率。这个"cobertura-1.9.4.1-src.zip"压缩包包含的是Cobertura 1.9.4.1版本的源代码。源代码是任何软件开发的基础,它允许开发者深入...
Cobertura 是一个用于 Java 代码覆盖率测试的工具,它能够帮助开发者测量和跟踪他们的源代码有多少被单元测试覆盖。 在描述 "cobertura-1.9.4.1-bin.zip" 中,没有额外的具体信息,但我们可以推断这可能是一个 ZIP ...
在项目中集成JaCoCo,可以设置最小覆盖率阈值,当测试覆盖率低于该阈值时,构建失败。此外,JaCoCo还可以与其他测试框架(如JUnit、TestNG)结合,实时展示覆盖率。 4. **代码覆盖率的重要性**:高覆盖率并不意味着...
本文将介绍如何使用Ant进行JUnit测试,结合DbUnit执行组件测试,利用JUnitPerf分析性能瓶颈,以及运用Selenium进行Web功能测试,同时还将展示如何借助Cobertura计算代码覆盖率和CruiseControl实现持续集成。...
Cobertura是一个常用的Java代码覆盖率工具。配置Cobertura通常涉及到修改Ant脚本,例如`cobertura/build.xml`。执行这个脚本,你可以得到关于测试覆盖的详细报告。 - 首先,确保Cobertura库已经添加到工程的构建...
Cobertura 也提供一个 Ant 任务和 Maven 插件,但用 Cobertura,您可以在编写代码时 评估代码覆盖率。您见过这样的模式吗? 通过选择 Eclipse 菜单项 Run 安装 Coverlipse 插件并将其和 JUnit 关联起来,该操作会...
8. **代码覆盖率**:在Java测试中,代码覆盖率工具(如JaCoCo或Cobertura)可以帮助我们了解测试覆盖了多少代码,这对于保证测试的全面性很重要。 9. **错误处理和日志记录**:在执行测试时,理解如何正确处理错误...