Kotlin inline关键字导致IntelliJ IDEA覆盖率报告0%

我创建了一个非常简单的测试函数如下

class SimpleClassTest { lateinit var simpleObject: SimpleClass @Mock lateinit var injectedObject: InjectedClass @Before fun setUp() { MockitoAnnotations.initMocks(this) } @Test fun testSimpleFunction() { simpleObject = lookupInstance() } inline fun lookupInstance() = SimpleClass(injectedObject) } 

我用Coverage运行它…测试覆盖率是0%。 但是,如果我删除inline关键字,测试范围编号现在显示。

这是一个Kotlin问题或Android IntelliJ IDEA覆盖问题? (注意:JaCoco覆盖率很好)。

注意:我正在使用Android Studio 2.0和Kotlin 1.0.2

编译内联函数时,编译器将其主体粘贴到调用站点(代替函数调用)。 这意味着覆盖率分析不能说明它是一个内联函数,因为它并不存在于你定义的地方。 换句话说,这个行为是一个函数被内联的意义的一个自然的人为因素。