如何在Jacoco报表中从Parcelable中排除自动生成的方法?

时间:2019-04-18 13:24:31

标签: android kotlin parcelable jacoco

我正在使用Jacoco创建测试覆盖率报告,还使用了Parcelize Android扩展插件来创建Parcelables所需的方法。

当我创建测试报告时,自动生成的功能也会出现在测试覆盖率中(例如createFromParcel(Parcel)),当然它们没有任何覆盖率。

如何从报告中排除这些功能?

1 个答案:

答案 0 :(得分:0)

一段时间以来,我一直在研究如何执行此操作,显然Jacoco确实忽略了自0.8.2版以来的自动生成的代码,但是对于这种特殊情况,使Parcelable接口起作用所需的CREATOR静态字段是不容忽视。所以我必须测试一下。尽管我无法轻易将其作为Parcelable类的静态字段进行访问,但是我不得不使用反射来获取它:

val yourParcelableClassCreator = YourParcelableClass::class.java.getField("CREATOR").get(null) as Parcelable.Creator<YourParcelableClass>

之后,您可以正常测试其createFromParcel方法,该方法将反映在您的jacoco报道中。