Jacoco排除课程

时间:2014-07-30 13:25:28

标签: java unit-testing jacoco

您好我正在尝试使用jacoco排除我的代码覆盖率的类。我想排除gui文件夹及其中的所有类。

   <configuration>
      <excludes>
          <exclude>com.project/folder/tools/gui/*.class</exclude>
      </excludes>
      </configuration>

com.project - &gt;文件夹 - &gt;工具 - &gt; GUI

我尝试了很多不同的路径,但出于某种原因,它不会排除任何路径。 我做错了吗? 任何人都可以指出我正确的方向。

3 个答案:

答案 0 :(得分:0)

我也面临同样的问题。在我的情况下,我试图生成在j2EE服务器上运行的应用程序的代码覆盖率。我试图删除一些没有太多用处的类,以增加代码覆盖率,但排除对我没用。

最后我尝试了解决这个问题,而不是使用exclude in to configuration。我已从负责生成报告的任务路径中删除了clasess。

答案 1 :(得分:0)

Maven include / exclude语法是Ant。所以我建议你看一下fileset documentation,你可以在那里找到一些说明性的例子。

在您的特定配置中,它可以使用此模式

**/gui/**

假设您没有使用包裹名称&#34; gui&#34;在其他方面。

答案 2 :(得分:0)

我们可以从覆盖率检查中排除该类(即,如果覆盖率未达到目标,则使构建失败),但不能将其从报告中排除(即您仍然可以在报告中看到该类)。是你追求的吗?

如果要从检查中排除类,则可以尝试以下配置,请使用com.project.folder.tools.gui。*模式,且不带斜杠和后缀。

<plugin>
    <groupId>org.jacoco</groupId>
    <artifactId>jacoco-maven-plugin</artifactId>
    <executions>
        <execution>
            <id>check</id>
            <goals>
                <goal>check</goal>
            </goals>
            <configuration>
            <haltOnFailure>true</haltOnFailure>
            <rules>
                <rule>
                    <element>CLASS</element>
                    <excludes>
                        <exclude>com.example.className</exclude>
                        <exclude>com.example.config.*</exclude>
                    </excludes>
                    <limits>
                        <limit>
                            <counter>LINE</counter>
                            <value>COVEREDRATIO</value>
                            <minimum>0.80</minimum>
                        </limit>
                    </limits>
                </rule>
            </rules>
            </configuration>
         </execution>
     </executions>
 </plugin>

检查this offical doco了解详情