2017-08-16 16 views
2

私はpom.xml内にコードカバレッジプラグインとしてJacocoを使用しています。私は、クラスファイルからほんの少数のメソッドのカバレッジをテストして分析し、それに応じてカバレッジパーセンテージを表示したいと考えています。しかし、ジャココは全ファイルを分析するので、関連する方法は100%カバーされますが、カバレッジは低くなります。 jacocoには、ソースファイルのコードを変更せずに分析されるいくつかのメソッドを除外する方法がありますか?コードカバレッジの分析方法をいくつかフィルタリングするにはどうすればよいですか?

答えて

1

これはできません。 Jacocoは包含レベルと除外レベルをクラスレベルにできますが、メソッドレベルでは認めません。

メソッドレベルでのフィルタリングのサポートは、hereで説明しています。これによりJacocoはJavaコンパイラによって生成された余分なバイトコードを無視することができます。同様の注記で、 (例えば、Mavenプラグインを介して)現在Jacocoを指示する方法はありませんがJacocoはまた、特定のメソッドを無視する

(例えばcode generated by Lombokなど)の注釈に基づいていくつかの生成されたコードを無視することができ、いくつかのオープンJacocoの問題がありますこれに関連した:

あなたはおそらくそれらに投票および/または特定の要件のために別の問題を提起することができます。

0

「クラスファイルのほんの少数のメソッドのカバレッジをテストして分析し、それに応じてカバレッジパーセンテージを表示したいのはなぜか分かりません」

  • メインクラスに関連しないコードがありますか?この場合、デザインについて考えてみてください。可能な解決策の1つは、クラスを親クラス、子クラス、メインクラス、およびいくつかのユーティリティに分割することです。
  • 2人の開発者がそれぞれ独自の結果しか表示しない同じクラスで作業している可能性がありますか?
  • テストするのが難しいコードがありますか?嘲笑してみてください。
+0

古いアーキテクチャーコードをWebサービスアーキテクチャーに移行する過程で、古いサービス方法から古いものまでしかウェブサービスに変換されず、他のものが処理中です。そこで、Webサービスとして扱われるメソッドのカバレッジをチェックしたいと考えています。 –

+0

これらのWebサービスメソッドは、これらの古いサービスメソッドのほんの僅かしかWebサービス経由で公開されていないため、部分的にカバーされている古いサービスコードを使用しています。 –

+1

私は親子のやり方が、テストカバレッジだけでなく、移行プロセスにも役立つと信じています。古いコードと新しいコードをはっきりと区別できます。 –

関連する問題