Im Coverage-Ergebnis zeigt es, dass ich 9 Anweisungen behandelt habe, während nur 5 Zeilen grün markiert sind. Welche sind die anderen 4 Anweisungen?Eclipse EcLemma Anzahl der abgedeckten Anweisungen mehr als Codezeilen
Antwort
Klicken Sie auf den Dropdown-Pfeil oben rechts im Feld Coverage. Es wird Ihnen eine couple different ways to measure your coverage geben. Der Standardwert scheint Anweisungen (Bytecode-Anweisungen) zu sein, aber Sie können Zeilen manuell auswählen.
Der Grund, warum Sie 9 Anweisungen sehen ist, weil es 9 Bytecodebefehle in 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
}
Das ist pures Genie! Vielen Dank Herr. –
Wie @schmosel sagt, es zählt Bytecodebefehle.
Sie können dies überprüfen, indem Sie die EMMA reference documentation (EclEMMA ist eine Eclipse-GUI um EMMA gewickelt), in denen die Phrase "Bytecode-Anweisungen" verwendet wird.
Kannst du mich bitte auf einen Link verweisen, wo ich die Bytecode-Anweisungen finden kann, EcLemma läuft? –
Die allgemeinste Lösung ist javap https://docs.oracle.com/javase/7/docs/technotes/tools/windows/javap.html - Sie können Ihre eigene GUI-Entsprechung suchen, wenn Sie mögen. – slim
Also welche Klasse sollte ich mit dem Befehl javap für meine Abfrage ausführen, wenn Sie vielleicht wissen? –
Vielleicht bedeutet es Bytecodebefehle. – shmosel
@smoselos: Ich glaube nicht, dass das der Fall ist –