Jacoco从报告中排除了课程

时间:2015-05-05 01:16:52

标签: java jacoco

我正在使用http://www.eclemma.org/jacoco/trunk/doc/examples/java/ReportGenerator.java

上的示例

我想从报告生成中排除某些类。我假设它必须在分析器中设置,但我可以找到一个例子。

3 个答案:

答案 0 :(得分:0)

听起来你可能想要Code Coverage Preferences中的排除

答案 1 :(得分:0)

我在analyzeStructure()说你不应该致电analyzer.analyzeAll(classesDirectory);,而是自己在classesDirectory内遍历文件树,不包括你不想要的课程已分析,然后将单个文件提供给analzyeAll()方法。但这只是盲目的猜测而没有尝试过。所以如果你试着告诉我它不起作用,我会删除我的答案。

答案 2 :(得分:0)

  1. 您可以声明一个新的构造函数,该构造函数接受另一个数组列表参数(请勿更改以前的构造函数,因为其他类正在使用它)。

    public Analyzer(final ExecutionDataStore executionData,
            final ICoverageVisitor coverageVisitor, ArrayList<String> excludeClassPathArrayList) {
    this.executionData = executionData;
    this.coverageVisitor = coverageVisitor;
    this.stringPool = new StringPool();
    this.excludeClassPathArrayList = excludeClassPathArrayList;
    }
    
  2. 然后在analyzeAll(final InputStream input, final String location)中修改方法ContentTypeDetector.CLASSFILE:,您可以这样做,如果位置在arrary列表中包含排除类路径,请像对待所有其他内容类型一样忽略它们({{1 }}。

  3. return 0重新编译jacoco源代码。

  4. 在Analyzer类的构造函数中传递excludeClassPathArrayList并生成报告。

您可以看到排除的类也排除在生成的报告中。 由于实现非常简单,因此我不提供代码示例。