FindBugs filter file for ignoring JUnit tests
16,666
FindBugs is actually scanning the compiled class files, not the sourcePath
. If you are compiling your src/* and test/* files to the different directories, you could just use the nested <class...>
element.
<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>
That won't work if src/* and test/* are both compiled to a single directory. In that case, use a filter file and exclude the packages or class names that correspond to tests.
<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>
where exclude.xml
looks like:
<FindBugsFilter>
<Match>
<Class name="~.*Test$"/>
</Match>
<Match>
<Package name="~test\..*"/>
</Match>
</FindBugsFilter>
Author by
user64133
Updated on June 03, 2022Comments
-
user64133 almost 2 years
I need to set up a filter file for my findbugs ant script that scans only the src/* files and not the test/* files.
What is the syntax for checking all classes while ignoring any filename or package name with 'test' in the name?
-
TofuBeer about 15 yearsgood explanation... apparently I need to start drinking coffee or something. Deleted my answer, which well correct is misleading.
-
John B over 11 yearsThe problem with this is that you test the error cases in the unit test (such as passing null as a parameter that is marked @Nonnull)
-
kza about 6 yearsWhy would you need to test that null case when you have your findbugs set up?
-
Marnes almost 6 years@konstantin.zaikin because you want to know what might happen at runtime too, not just what can be deduced at compile time