2016-05-03 3 views
2

В результате покрытия он показывает, что я накрыл 9 инструкций, в то время как есть только 5 строк, выделенных зеленым цветом. Какие еще 4 инструкции?Eclipse EcLemma количество покрываемых инструкций больше строк кода

enter image description here

+1

Может быть, это означает, что инструкции байткодом. – shmosel

+0

@shmosel: Я не думаю, что это так. –

ответ

3

Нажмите стрелку вниз в правом верхнем углу окна Coverage. Это даст вам couple different ways to measure your coverage. По умолчанию используются инструкции (инструкции байт-кода), но вы можете вручную выбирать строки.

2

Причина вы видите 9 инструкции, потому что есть 9 инструкции байткодом в Foo:

$ 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 
} 
+0

Это чистый гений! Большое спасибо, сэр. –

2

Как @schmosel говорит, что рассчитывает инструкции байткодом.

Вы можете проверить это, прочитав EMMA reference documentation (EclEMMA - это графический интерфейс Eclipse, обернутый вокруг EMMA), в котором используется фраза «инструкции по байт-коду».

+0

Не могли бы вы сослаться на ссылку, где я могу найти инструкции по байт-коду, в которых работает EcLemma? –

+0

Наиболее общим решением является javap https://docs.oracle.com/javase/7/docs/technotes/tools/windows/javap.html - вы можете искать свой собственный графический интерфейс, если хотите. – slim

+0

Итак, какой класс мне следует запускать с помощью команды javap для моего запроса, если вы знаете? –

Смежные вопросы