标签: emma

清除在Eclipse中突出显示的覆盖范围

在Eclipse中运行覆盖率报告(使用cobertura或EMMA插件)后,我的源代码文件以绿色,红色和黄色突出显示,具体取决于测试覆盖的代码行.

我完成后如何清除这个突出显示?

eclipse code-coverage emma cobertura

499
推荐指数
7
解决办法
17万
查看次数

Testng,Emma,Cobertura,coverage和JDK 7导致ClassFormatError和VerifyError

我已经切换到最新的JDK 7,我遇到了在emma覆盖工具打乱的字节代码上运行testng单元测试的问题.我的测试用例都没有正确运行,对于大多数测试用例我都收到了这样的错误.

 java.lang.ClassFormatError: Illegal local variable table length 10 in method measurement.meter.AbstractSerialPortMeter.<init>(Lmeasurement/meter/SerialPort;)V at measurement.meter.Elc3133aTest.setUp(Elc3133aTest.java:42)
Run Code Online (Sandbox Code Playgroud)

我在这里找到了一篇文章JSR 292 Goodness Fast Code Coverage Tool Less 10k,它说"JSR 292引入了一个新的字节码指令invokedynamic,但也有几种新的常量池常量.这意味着大多数解析字节码的工具都像ASM,BCEL,findbugs或EMMA需要更新为兼容java 7."

检查了艾玛的主页,但看起来它已经很久没有更新了.

有人解决了类似的问题吗?

我也曾尝试过Cobertura.它看起来工作得更好但我得到了很多类型的例外VerifyError.

java.lang.VerifyError: Expecting a stackmap frame at branch target 85 in method measurement.meter.AbstractSerialPortMeter.close()V at offset 26
at measurement.meter.AbstractSerialPortMeterTest.setUp(AbstractSerialPortMeterTest.java:27)
Run Code Online (Sandbox Code Playgroud)

code-coverage emma cobertura java-7 jacoco

55
推荐指数
2
解决办法
4万
查看次数

艾玛对Enum类型的报道

我正在运行EclEmma,Eclipse的Emma插件,并且覆盖率报告仅显示我定义的Enum的部分覆盖,即使它显示Enum中唯一的值被覆盖.我假设支持Enum的隐含方法存在覆盖差距,但我不太确定.

例如,使用此Enum,EclEmma会以绿色突出显示所有内容,但包声明除外:

package com.blah;

public enum UserRole {
 HAS_ACCESS
}
Run Code Online (Sandbox Code Playgroud)

如果我提取课程的覆盖范围详细信息,我会看到:

替代文字

我的问题是,使用EclEmma在我的Enum课程上获得100%覆盖率的最佳方法是什么?

java eclipse code-coverage emma

44
推荐指数
2
解决办法
1万
查看次数

26
推荐指数
1
解决办法
3万
查看次数

Android的代码覆盖率

可能重复:
Android测试代码覆盖率,Eclipse

看到没有关于如何在Eclipse中使用EMMA for Android应用程序的文档,真的很令人沮丧.有没有人设法在eclipse中使用EMMA进行Android应用程序?没有检查整个android源并做所有的hackery?

eclipse android emma

24
推荐指数
1
解决办法
1万
查看次数

为什么艾玛不能完全覆盖最终的阻止?

我不明白为什么艾玛没有给"最终"块提供完整的代码覆盖.我做了一个简短的示例程序来演示这个.

当我执行程序时,它显示:

try
finally
Run Code Online (Sandbox Code Playgroud)

所以我不明白为什么最终被标记为红色(未执行)并且"finally""println"被标记为黄色(部分执行).我错过了什么吗?如何让emma了解finally块被覆盖?

例

谢谢!

java code-coverage emma

22
推荐指数
1
解决办法
5625
查看次数

eclemma - 如何忽略来源

我正在使用junit/eclemma; 它很有效,除了我想指示eclemma忽略某些方法或类.例如,我将如何指示eclemma忽略getter/setter.

提前致谢!

junit code-coverage emma

19
推荐指数
1
解决办法
8352
查看次数

使用assertTrue而不是assertNull时缺少分支

在Java/Junit中,我需要使用某个对象测试null.我可以通过多种方式测试条件,但我一直在使用assertTrue进行大多数测试.当我在assertTrue中检查空值时,EclEmma声明它只测试一个分支.

当我手动将语句解析为变量(比如将结果设置为布尔值并将其传递给assertTrue)时,代码覆盖率在断言上被认为是完整的,而不是在变量初始化行上.

为什么会这样?这是否与Java显然添加的额外字节代码相关,如http://sourceforge.net/apps/trac/eclemma/wiki/FilteringOptions所述?任何解决方案(除了使用其他断言语句).

assertTrue:

assertTrue( myObject == null ); //1 of 2 branches
Run Code Online (Sandbox Code Playgroud)

assertTrue:

boolean test = (myObject == null); //1 of 2 branches missing
assertTrue(test); // complete
Run Code Online (Sandbox Code Playgroud)

assertNull:

assertNull( myObject ) //complete;
Run Code Online (Sandbox Code Playgroud)

junit code-coverage bytecode emma jacoco

17
推荐指数
1
解决办法
2万
查看次数

如何强制Emma代码覆盖率报告忽略一些方法?

一些方法,例如自动生成的getter,setter,equals和toString,对于测试来说是微不足道的.但是,如果它们未添加到测试类中,则代码覆盖百分比(使用Emma计算)会降低,并可能导致系统构建崩溃.

如何强制emma忽略代码覆盖百分比中的这些方法?

问候,

费利佩

code-coverage emma

16
推荐指数
1
解决办法
2864
查看次数

Hudson中的Java代码覆盖率

我正在将一些项目从一个ant构建迁移到一个maven.构建服务器是,并将保留,Hudson.

由于测试运行并记录了两次问题,我在使用cobertura在哈德森录制代码覆盖时遇到了麻烦.

该项目是多模块的,尽管不是必需的,但是具有代码覆盖率数据的聚合输出将是很好的.

总而言之,我正在寻找的解决方案必须:

  • 对所有模块运行自动化测试并记录一次结果;
  • 在Hudson中显示单个模块代码的覆盖范围;
  • 为整个项目轻松配置一次,而不是在每个模块中配置.

解决方案可以基于Cobertura,或Emma,或任何其他Java代码覆盖工具.


更新:使用Emma运行测试仍然会复制结果并且没有merge功能,因此它不适用于多模块构建.

java code-coverage hudson emma cobertura

14
推荐指数
2
解决办法
8308
查看次数