Java 用于忽略JUnit测试的FindBugs筛选器文件
我需要为我的findbugs ant脚本设置一个过滤器文件,它只扫描src/*文件,而不扫描test/*文件Java 用于忽略JUnit测试的FindBugs筛选器文件,java,ant,junit,findbugs,Java,Ant,Junit,Findbugs,我需要为我的findbugs ant脚本设置一个过滤器文件,它只扫描src/*文件,而不扫描test/*文件 检查所有类时忽略名称中带有“test”的任何文件名或包名的语法是什么?FindBugs实际上是扫描已编译的类文件,而不是源路径。如果您正在将src/*和test/*文件编译到不同的目录中,则可以使用嵌套的元素 <findbugs home="${findbugs.dir}" output="xml:withMessages" outputFile="${findbugs.
检查所有类时忽略名称中带有“test”的任何文件名或包名的语法是什么?FindBugs实际上是扫描已编译的类文件,而不是
源路径。如果您正在将src/*和test/*文件编译到不同的目录中,则可以使用嵌套的
元素
<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>
顺便说一下,用FindBugs覆盖单元测试也是一个好主意。没有理由对测试使用较低的质量标准。测试中的bug就是这样,bug
当然,如果您第一次运行FindBugs,可能会有许多错误报告,但是如果您注意它们,错误计数会随着时间的推移而下降。很好的解释。。。显然我需要开始喝咖啡什么的。删除了我的答案,这很正确,但有误导性。问题是,您在单元测试中测试错误案例(例如将null作为标记为@Nonnull的参数传递),为什么在设置findbugs时需要测试该null案例?@konstantin.zaikin,因为您也想知道在运行时可能会发生什么,不仅仅是在编译时可以推断出什么
<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>
<FindBugsFilter>
<Match>
<Class name="~.*Test$"/>
</Match>
<Match>
<Package name="~test\..*"/>
</Match>
</FindBugsFilter>