regex 如何在Coverity Connect分析结果中忽略JAVA测试?

cigdeys3  于 2023-08-08  发布在  Java
关注(0)|答案(1)|浏览(89)

我使用Coverity来扫描我的项目是否存在安全问题。
我想知道的是如何排除任何java测试(注:* 集成和单元 *)。
我确实使用了maven来构建项目,并且排除了使用-Dmaven.skip.test=true标志的单元测试。虽然这使得Coverity不能扫描单元测试,但它仍然可以扫描集成测试。
我的项目中的所有集成测试都在文件标题中包含“Test”一词。因此,我开始查看Coverity中提供的过滤器部分。我当时尝试的是正则表达式(.*(!?(Test).*)$),但它不起作用。看起来coverity支持两个匹配字符(* and ?-见下图),但似乎不支持任何负查找。
x1c 0d1x的数据
有没有什么好的方法可以轻松、干净地完成这项任务?

ca1c2owp

ca1c2owp1#

由于Coverity依赖于您的Maven构建,因此您可以排除:

  • 通过添加-Dmaven.skip.test=true编译并执行单元测试(通过Surefire插件)和集成测试(通过Failsafe插件)
  • 通过-DskipTests执行单元测试和集成测试
  • 通过-DskipITs执行集成测试

相反,如果您在一个单独的Maven模块中有集成测试,您可以通过profile直接将其从Maven构建中排除,如下面的示例-请参阅aggregator的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

相关问题