1

私は現在、TDDハッカーになる過程にあります。その一環として、Coberturaが生成するようなコードカバレッジレポートは不可欠なツールだと思います。

しかし、次のコードが正しくカバーされていないため、私のコードカバレッジはやや肥大化しています。

if(logger.isLoggable(Level.INFO)) {
    logger.info("blah blah blah");
}

私はJenkinsとMaven内でレポートを実行しています(それが問題になる可能性があるかどうかわかりませんか?)。isLoggable(Level.INFO)(私の場合)常にtrueであるため、入力してログに記録します。isLoggable(Level.XX)その部分をスキップするか、trueとfalseに設定できるようにしたいと思います。

アイデア、ヒントなどはありますか?多分私が見落としていた何か、すべてが大いに感謝されます!:)

[編集]2.6で修正されるはずのMavencoberturaプラグインのバグのようです:http://jira.codehaus.org/browse/MCOBERTURA-52しかし、2.6 はリリースされていないので、待つ必要があります... [/編集]

4

2 に答える 2

1

クラスを計測すると、特定のメソッド/呼び出しを無視できます。レポートはその一歩先です。

ant では、これは次のように行われます (ドキュメントの例)。Maven にも同じオプションがある場合がありますが、これは使用する maven プラグインによって異なります。

<cobertura-instrument todir="${instrumented.dir}">
    <ignore regex="java.util.logging.*" />
    <fileset dir="${classes.dir}">
        ...
    </fileset>
</cobertura-instrument>

インストルメンテーションから除外したいパッケージに対して無視する正規表現を設定するだけで、レポートに表示されなくなります。

Maven を使用すると、次のように動作するはずです。

<instrumentation>
    <ignores>
       <ignore>java.util.logging.*</ignore>
    </ignores>
</instrumentation>
于 2012-07-13T09:20:42.140 に答える
0

cobertura インストルメンテーションからロギング呼び出しを除外する方法を詳細に説明している素晴らしい記事があります。 http://fahdshariff.blogspot.gr/2010/01/cobertura-ignore-logger-calls.html およびここに投稿された同様の質問: Cobertura でコード カバレッジからメソッドを除外する

これらのリンクの両方が役立つと思います

于 2012-07-13T12:02:28.290 に答える