Ich habe gerade einen einfachen Beispielcode geschrieben, um sicherzustellen, dass EclEmma korrekt installiert wurde. Ich bekomme keine 100% ige Abdeckung, und ich verstehe nicht warum. Die Hervorhebung bedeutet, dass es mit dem Klassennamen zu tun hat. Hier ist mein Code, mit entsprechenden JUnit-Tests, die Art und Weise EclEmma es hervorgehoben:Kann der vollständig abgedeckte Code eine EclEmma-Abdeckung von weniger als 100% haben?
Die Berichterstattung Ergebnisse zeigen, dass drei Befehle in Arithmetic
nicht getroffen zu, obwohl beide eigentlichen Methoden scheinen vollständig gedeckt werden:
ich the EclEmma documentation about basic block coverage gelesen habe, aber ich bin immer noch verwirrt. Ich bin mir nicht sicher, welche Grundblöcke verpasst werden. Zuerst dachte ich, dass EclEmma den Bytecode für Klassen einfach ignorieren würde, aber ArithmeticTest
scheint in Ordnung zu sein.
Ich habe zwei eng verwandte Fragen:
- dies ein Problem mit der Art und Weise zeigen Ist ich EclEmma installiert/konfiguriert?
- Ist es für einen vollständig abgedeckten Code normal/akzeptabel, eine hohe, aber nicht ganz 100% ige EMMA-Abdeckung zu erhalten, und wenn ja, wie funktioniert das?
Eigentlich hat es einen "Textblock", es ist nur leer. In Bytecode ist der Standardkonstruktor an der von EclEmma rot markierten Zeile vorhanden. Um es abzudecken und es grün erscheinen zu lassen, muss ein Test nur den Konstruktor aufrufen: 'new Arithmetic()'. Natürlich wäre es richtig, einen 'privaten' Standardkonstruktor in der Klasse zu deklarieren. –