java - 用于忽略 JUnit 测试的 FindBugs 过滤器文件

标签 java ant junit findbugs

我需要为我的 findbugs ant 脚本设置一个过滤器文件,它只扫描 src/* 文件而不扫描 test/* 文件。

在忽略名称中带有“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/* 都被编译到一个目录中,那将不起作用。在这种情况下,使用 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>

关于java - 用于忽略 JUnit 测试的 FindBugs 过滤器文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/756523/

相关文章:

java - 使用 hiverunner 进行单元测试中的 MissingTableException

java - 如何添加两个面板并在框架更改大小时调整它们的大小?

java - 将不同类的对象作为参数传递给同一方法

java - Spring 数据库初始化仅在应用程序重启后才有效

ant - 无法使用 wsadmin 将上下文根传递到 websphere 中的 .war 应用程序

java - 在 macosx 上将 launch4j 作为 ant 构建任务运行

java - onClickListener 在 setContentView 后不起作用

java - 如何在 ant zip 任务中使用 exceptsfile/includesfile

java - 您如何模拟您尝试使用 JUnit + Mockito 进行单元测试的服务中使用的类

java - JUnit4 使用测试套件运行特定包中的所有测试