我正在使用Jacoco创建测试覆盖率报告,还使用了Parcelize Android扩展插件来创建Parcelables所需的方法。
当我创建测试报告时,自动生成的功能也会出现在测试覆盖率中(例如createFromParcel(Parcel))
,当然它们没有任何覆盖率。
如何从报告中排除这些功能?
答案 0 :(得分:0)
一段时间以来,我一直在研究如何执行此操作,显然Jacoco确实忽略了自0.8.2版以来的自动生成的代码,但是对于这种特殊情况,使Parcelable接口起作用所需的CREATOR静态字段是不容忽视。所以我必须测试一下。尽管我无法轻易将其作为Parcelable类的静态字段进行访问,但是我不得不使用反射来获取它:
val yourParcelableClassCreator = YourParcelableClass::class.java.getField("CREATOR").get(null) as Parcelable.Creator<YourParcelableClass>
之后,您可以正常测试其createFromParcel
方法,该方法将反映在您的jacoco报道中。