EclEmmaを使用して、シナリオテストのカバレッジをテストし、プロジェクトのユースケーステストを行います。最も一般的なクラスとユースケーステストを含むBaseパッケージがあります。カバレッジは次のようになります。
私が望むのは、カバレッジ計算からユースケーステスト(BugReportTestなど)を除外することです。しかし、その中のテストを考慮したいのです。クラス全体をカバレッジから除外する方法は知っていますが、それを行うと、コードのどの行がテストされているかを確認する実際のテストが忘れられるため、カバレッジが低下します。これらのユースケーステストは、プライバシー上の理由からベースパッケージにとどまる必要があります。
技術的な理由により、コードカバレッジ分析から特定のクラスを除外する必要がある場合があります。次のオプションは、分析から特定のクラスを除外するようにカバレッジエージェントを構成します。パフォーマンスの最適化またはテクニカルコーナーの場合を除き、これらのオプションは通常必要ありません。
Excludes:実行分析から除外する必要があるクラス名のリスト。リストのエントリはcolon (:)
で区切られ、wildcard characters (* and ?). (Default: empty)
を使用できます
Exclude classloaders:実行分析から除外する必要のあるクラスローダー名のリスト。リストのエントリはcolon (:)
で区切られ、wildcard characters (* and ?)
を使用できます。このオプションは、JaCoCoコードインストルメンテーションと競合する特別なフレームワーク、特にJavaランタイムクラスにアクセスできないクラスローダー)の場合に必要になることがあります。(Default: Sun.reflect.DelegatingClassLoader)
警告:これらのオプションは注意して使用してください!無効なエントリは、コードカバレッジランチャーを破損する可能性があります。また、これらのオプションを使用して分析の範囲を定義しないでください。 除外されたクラスはまだカバーされていないとして表示されます。
<filter includes="com.foo.*" excludes="com.foo.test.*, com.foo.*Test*" />
<filter includes="com.foo.*" /> <filter excludes="com.foo.test.*, com.foo.*Test*" />
<filter value="+com.foo.*, -com.foo.test.*, -com.foo.*Test*" />
myfilters.txtファイルには次の行が含まれます。
<filter excludes="com.foo.*Test*" file="myfilters.txt" />
-com.foo.test.* +com.foo.*
Preferences->Java->Code Coverage
および"Only path entries matching"
オプションをsrc/main/Java
に設定-うまく機能しているようです