科特林版本: 1.3.61
Android Gradle 插件: 3.5.3
JaCoCo 版本: 0.8.4.201905082037(默认 android gradle 版本)
项目:https : //github.com/goldy1992/Mp3Player/tree/feature/issue-112/migrate-to-kotlin
我有一个多模块 gradle 项目:2 种风格:完整、自动化 2 种构建类型:发布、调试
我正在将所有内容迁移到 kotlin。
模块结构
对于这篇文章的上下文,我只对单元测试感兴趣
测试按预期运行,但是由于某些(不是全部)kotlin 编译类被识别为“检测类”,因此没有生成覆盖率
错误出现在测试即将进行时,许多类都打印出以下内容:
java.lang.instrument.IllegalClassFormatException: Error while instrumenting com/github/goldy1992/mp3player/client/views/viewholders/MediaPlayerTrackViewHolder.
at org.jacoco.agent.rt.internal_035b120.CoverageTransformer.transform(CoverageTransformer.java:93)
at sun.instrument.TransformerManager.transform(TransformerManager.java:188)
at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:428)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
at java.security.AccessController.doPrivileged(Native Method)
at …Run Code Online (Sandbox Code Playgroud)