如何从android项目中的jacoco测试覆盖率报告中排除方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从android项目中的jacoco测试覆盖率报告中排除方法相关的知识,希望对你有一定的参考价值。
我检查了Jacoco github ans浏览了一些Stack Overflow问题。通过注释不支持最高版本0.7.9的jacoco过滤方法,仅支持整个类。现在0.8.0和0.8.1已经发布。这些版本中是否添加了此功能?我检查了jacoco的变化历史。
https://github.com/jacoco/jacoco/releases
但是在最新版本中看不到与过滤相关的任何内容。但是仍然想确认某人是否实现了这一目标以及如何实现?
答案
我找到了如何从覆盖率报告中排除静态方法的解决方案。
- 用静态类包装它
- 排除配置中的静态类
示例java代码:
private static class Document {
private static org.w3c.dom.Document createDocument() {
try {
final javax.xml.parsers.DocumentBuilderFactory factory =
javax.xml.parsers.DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(true);
factory.setFeature(javax.xml.XMLConstants.FEATURE_SECURE_PROCESSING, true);
final javax.xml.parsers.DocumentBuilder builder = factory.newDocumentBuilder();
return builder.newDocument();
} catch (javax.xml.parsers.ParserConfigurationException ex) {
return null;
}
}
}
示例排除配置:
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.2</version>
<executions>
<execution>
<id>prepare-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
</executions>
<configuration>
<excludes>
<exclude>**/Xml$Document.class</exclude>
</excludes>
</configuration>
</plugin>
以上是关于如何从android项目中的jacoco测试覆盖率报告中排除方法的主要内容,如果未能解决你的问题,请参考以下文章
从精准化测试看ASM在Android中的强势插入-JaCoco初探
在带有 Gradle 的 Android 项目中使用 JaCoCo
Android Studio 中的 Jacoco 代码覆盖率