55

コードを Cobertura カバレッジ レポートに含めないようにする方法はありますか? カバレッジ レポートに含めてはならないメソッドがいくつかあるため、カバレッジ数を減らしません。

Clover にそのような機能があることは知っていますが、Cobertura に似た機能は見つかりませんでした。

4

5 に答える 5

59

インストルメンテーションからクラスを除外できます。その後、それらはレポートに表示されません。以下の除外ステートメントを参照してください。

一部のメソッドの呼び出しを無視することもできます。以下の無視ステートメントを参照してください。

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>

アリについては、これを参照してください。

<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>
于 2009-06-04T16:31:35.027 に答える
21

これはしばらくの間私の頭を壊しています。

私の問題は、ビルド セクションではなくレポート セクションに cobertura maven プラグインをセットアップしていたことです。

インストルメンテーション設定、つまりクラスまたはパッケージの除外は、ビルド セクションで設定しないと適用されないため、注意してください。

于 2011-07-25T12:01:26.693 に答える
4

Cobertura は現在、そのような機能を提供しておらず、Emma (私たちが使用している) も提供していませんが、今後の拡張機能としてリストされていますが、注釈としてではなく、除外ルールの拡張の形であると私は信じています.

アクセスできないいくつかのコーナーをきれいにカバーして、ばかげずに 100% を目指して努力できるようにすると便利です。

注釈はおそらくそれを行うためのより友好的な方法だと思いますが、「@ExcludeFromCoverage」のようなものが寛大に追加されるのではないかと恐れているため、許容可能なシナリオのリストに基づいて、かなり明示的に名前を付ける必要があります。

于 2010-12-30T11:23:40.647 に答える