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>
Share:
16,666
user64133
Author by

user64133

Updated on June 03, 2022

Comments

  • user64133
    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
    TofuBeer about 15 years
    good explanation... apparently I need to start drinking coffee or something. Deleted my answer, which well correct is misleading.
  • John B
    John B over 11 years
    The 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
    kza about 6 years
    Why would you need to test that null case when you have your findbugs set up?
  • Marnes
    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