。FindBugsのは、JUnitテストを無視するため、ファイルをフィルタリング
ファイル名またはパッケージ名を無視して、すべてのクラスをチェックする構文は何ですか?名前に 'test'が含まれていますか?
。FindBugsのは、JUnitテストを無視するため、ファイルをフィルタリング
ファイル名またはパッケージ名を無視して、すべてのクラスをチェックする構文は何ですか?名前に 'test'が含まれていますか?
FindBugsは、実際には、sourcePath
ではなく、コンパイルされたクラスファイルをスキャンしています。 src/*とtest/*ファイルを異なるディレクトリにコンパイルする場合は、入れ子になった<class...>
要素を使用するだけです。
<findbugs home="${findbugs.dir}" output="xml:withMessages"
outputFile="${findbugs.report.xml}" jvmargs="-Xmx256M"
effort="max" projectName="${ant.project.name}"
auxClasspathRef="findbugs.classpath"
sourcePath="${src.dir}">
<class location="${src.classes.dir}"/>
</findbugs>
src/*とtest/*の両方が1つのディレクトリにコンパイルされていると動作しません。その場合は、filter fileを使用し、テストに対応するパッケージまたはクラス名を除外します。
<findbugs home="${findbugs.dir}" output="xml:withMessages"
outputFile="${findbugs.report.xml}" jvmargs="-Xmx256M"
effort="max" projectName="${ant.project.name}"
auxClasspathRef="findbugs.classpath"
sourcePath="${src.dir}"
excludefilter="exclude.xml">
<class location="${classes.dir}"/>
</findbugs>
exclude.xml
が見える場所:ところで
<FindBugsFilter>
<Match>
<Class name="~.*Test$"/>
</Match>
<Match>
<Package name="~test\..*"/>
</Match>
</FindBugsFilter>
、同様にFindBugsのでユニットテストをカバーするために良いアイデアです。より質の低い基準をテストに使用する理由はありません。テストでのバグはまさにバグです。
確かに、あなたはFindBugsのを最初に実行する場合、多くのバグレポートがあるかもしれませんが、あなたがそれらに注意を払っているのであれば、バグの数は残業降りてくるだろう。
これの問題は、単体テストのエラーケースをテストすることです(@ Nonnullとマークされたパラメータとしてnullを渡すなど) –
良い説明...明らかに私はコーヒーや何かを飲んで始めなければなりません。私の答えを削除しました。間違いは間違いです。 – TofuBeer