Eclipse EcLemma涵盖的指令数量多于代码行数

时间:2016-05-03 16:27:09

标签: java eclipse eclemma

在覆盖结果中,它显示我已经覆盖了9条指令,而只有5条线突出显示为绿色。其他4条指令是哪一个?

enter image description here

2 个答案:

答案 0 :(得分:4)

点击“覆盖率”框右上角的下拉箭头。它会给你一个couple different ways to measure your coverage。默认似乎是指令(字节码指令),但您可以手动选择行。

2

您看到9条指令的原因是因为Foo中有9条字节码指令:

$ javap -c Foo.class 
Compiled from "Foo.java"
public class Foo {
  public Foo();
    Code:
       0: aload_0
       1: invokespecial #8                  // Method java/lang/Object."<init>":()V
       4: return

  public static void main(java.lang.String[]);
    Code:
       0: getstatic     #16                 // Field java/lang/System.out:Ljava/io/PrintStream;
       3: ldc           #22                 // String Test
       5: invokevirtual #24                 // Method java/io/PrintStream.println:(Ljava/lang/String;)V
       8: new           #1                  // class Foo
      11: invokespecial #30                 // Method "<init>":()V
      14: return
}

答案 1 :(得分:2)

正如@schmosel所说,它正在计算字节码指令。

您可以通过阅读EMMA reference documentation(EclEMMA是一个围绕EMMA的Eclipse GUI)来验证这一点,其中始终使用短语“字节码指令”。