Inline-Keyword von Kotlin verursacht IntelliJ IDEA Coverage-Bericht 0%

9

Ich habe eine sehr einfache Testfunktion wie folgt erstellt:

%Vor%

Ich starte es mit Coverage ... Die Testabdeckung Nummer ist 0%. Aber wenn ich das inline Schlüsselwort entferne, wird die Testabdeckung jetzt angezeigt.

Ist dies ein Problem mit Kotlin oder Android IntelliJ IDEA Coverage? (Hinweis: JaCoco Berichterstattung ist gut).

Hinweis: Ich verwende Android Studio 2.0 und Kotlin 1.0.2

    
Elye 24.05.2016, 06:19
quelle

1 Antwort

1

Wenn eine Inlinefunktion kompiliert wird, fügt der Compiler im Wesentlichen seinen Körper in die Aufrufstelle ein (anstelle des Funktionsaufrufs). Dies bedeutet, dass die Coverage-Analyse nicht erkennen kann, dass es sich um eine Inline-Funktion handelt, da sie nicht wirklich dort existiert, wo Sie sie definiert haben. Mit anderen Worten, dieses Verhalten ist ein natürliches Artefakt dessen, was es für eine Funktion bedeutet, inline zu sein.

    
Mark 06.06.2017 12:16
quelle