使用Cobertura从代码覆盖中排除方法

Ren*_*neS 53 java code-coverage cobertura

有没有办法将代码排除在Cobertura覆盖率报告之外?我们有一些方法不应包含在覆盖率报告中,因此不会降低覆盖率数字.

我知道Clover有这样的功能,但我没有找到类似的Cobertura.

Juh*_*älä 57

您可以从检测中排除类.然后它们不应出现在报告中.请参阅以下排除声明.

您也可以忽略对某些方法的调用.请参阅以下忽略声明.

如果您使用的是maven,请参阅maven插件手册.

    <configuration>
      <instrumentation>
        <ignores>
          <ignore>com.example.boringcode.*</ignore>
        </ignores>
        <excludes>
          <exclude>com/example/dullcode/**/*.class</exclude>
          <exclude>com/example/**/*Test.class</exclude>
        </excludes>
      </instrumentation>
    </configuration>
Run Code Online (Sandbox Code Playgroud)

而对于蚂蚁看到这一点.

<cobertura-instrument todir="${instrumented.dir}">
  <ignore regex="org.apache.log4j.*" />
  <fileset dir="${classes.dir}">
    <include name="**/*.class" />
    <exclude name="**/*Test.class" />
  </fileset>
  <fileset dir="${jars.dir}">
    <include name="my-simple-plugin.jar" />
  </fileset>
</cobertura-instrument>
Run Code Online (Sandbox Code Playgroud)


Ike*_*nez 21

这已经让我头疼了一段时间了.

我的问题是我在报告部分而不是构建部分设置了cobertura maven插件.

如果你不将它安放构建部分,所以,要当心这种仪器的设置,因此类或包不包括,将不会应用.

  • 你能提供一个例子吗? (2认同)

Sar*_*ips 17

记得也要排除内部类.

<exclude>path/to/class/MyClass*.class</exclude>
Run Code Online (Sandbox Code Playgroud)

我花了很长时间才注意到我错过了一个星号!