我正在使用http://www.eclemma.org/jacoco/trunk/doc/examples/java/ReportGenerator.java
上的示例我想从报告生成中排除某些类。我假设它必须在分析器中设置,但我可以找到一个例子。
答案 0 :(得分:0)
听起来你可能想要Code Coverage Preferences中的排除?
答案 1 :(得分:0)
我在analyzeStructure()
说你不应该致电analyzer.analyzeAll(classesDirectory);
,而是自己在classesDirectory
内遍历文件树,不包括你不想要的课程已分析,然后将单个文件提供给analzyeAll()
方法。但这只是盲目的猜测而没有尝试过。所以如果你试着告诉我它不起作用,我会删除我的答案。
答案 2 :(得分:0)
您可以声明一个新的构造函数,该构造函数接受另一个数组列表参数(请勿更改以前的构造函数,因为其他类正在使用它)。
public Analyzer(final ExecutionDataStore executionData,
final ICoverageVisitor coverageVisitor, ArrayList<String> excludeClassPathArrayList) {
this.executionData = executionData;
this.coverageVisitor = coverageVisitor;
this.stringPool = new StringPool();
this.excludeClassPathArrayList = excludeClassPathArrayList;
}
然后在analyzeAll(final InputStream input, final String location)
中修改方法ContentTypeDetector.CLASSFILE:
,您可以这样做,如果位置在arrary列表中包含排除类路径,请像对待所有其他内容类型一样忽略它们({{1 }}。
return 0
重新编译jacoco源代码。
您可以看到排除的类也排除在生成的报告中。 由于实现非常简单,因此我不提供代码示例。