如何忽略 Coverity Connect 分析结果中的 JAVA 个测试?
How do I ignore JAVA tests in Coverity Connect analysis result?
我使用 Coverity 扫描我的项目是否存在安全问题。
我想知道的是如何排除任何java测试(注意:集成和单元)来自缺陷提交后可用的分析结果。
我确实使用 maven 来构建项目,并且我使用标志 -Dmaven.skip.test=true
排除了单元测试。
尽管这使得 Coverity 不扫描单元测试,但它仍然扫描集成测试。
我项目中的所有集成测试在文件标题中都包含单词 "Test"。因此,我开始查看 Coverity 中提供的过滤器部分。我当时尝试的是正则表达式 (.*(!?(Test).*)$
),但它没有用。似乎 coverity 支持两个匹配字符(* and ?
- 见下图),而它似乎不支持任何否定 look-around.
有什么好的方法可以简单干净地完成这项任务吗?
由于 Coverity 依赖于您的 Maven 构建,您可以排除:
- 编译和执行单元测试(通过 Surefire 插件)和 集成测试(通过 Failsafe 插件)通过添加
-Dmaven.skip.test=true
- 通过
-DskipTests
执行单元测试和集成测试
- 通过
-DskipITs
执行集成测试
相反,如果您在单独的 Maven 模块中进行集成测试,则可以通过配置文件直接将其从 Maven 构建中排除,如下例所示——请参阅聚合器 pom.xml 和 Maven 命令行的摘录待推出:
<modules>
<!-- remove 'my-it-module' from this list -->
</modules>
<profiles>
<profile><id>build-it</id>
<activation><activeByDefault>true</activeByDefault></activation>
<modules><module>my-it-module</module></modules>
</profile>
</profiles>
然后是mvn install -P !build-it
我使用 Coverity 扫描我的项目是否存在安全问题。
我想知道的是如何排除任何java测试(注意:集成和单元)来自缺陷提交后可用的分析结果。
我确实使用 maven 来构建项目,并且我使用标志 -Dmaven.skip.test=true
排除了单元测试。
尽管这使得 Coverity 不扫描单元测试,但它仍然扫描集成测试。
我项目中的所有集成测试在文件标题中都包含单词 "Test"。因此,我开始查看 Coverity 中提供的过滤器部分。我当时尝试的是正则表达式 (.*(!?(Test).*)$
),但它没有用。似乎 coverity 支持两个匹配字符(* and ?
- 见下图),而它似乎不支持任何否定 look-around.
有什么好的方法可以简单干净地完成这项任务吗?
由于 Coverity 依赖于您的 Maven 构建,您可以排除:
- 编译和执行单元测试(通过 Surefire 插件)和 集成测试(通过 Failsafe 插件)通过添加
-Dmaven.skip.test=true
- 通过
-DskipTests
执行单元测试和集成测试
- 通过
-DskipITs
执行集成测试
相反,如果您在单独的 Maven 模块中进行集成测试,则可以通过配置文件直接将其从 Maven 构建中排除,如下例所示——请参阅聚合器 pom.xml 和 Maven 命令行的摘录待推出:
<modules>
<!-- remove 'my-it-module' from this list -->
</modules>
<profiles>
<profile><id>build-it</id>
<activation><activeByDefault>true</activeByDefault></activation>
<modules><module>my-it-module</module></modules>
</profile>
</profiles>
然后是mvn install -P !build-it