从 Azure DevOps 中的 Fortify Scan 中排除测试项目

Excluding Test Projects from Fortify Scan in Azure DevOps

我正在使用 Fortify 静态代码分析器评估插件通过 ADO 管道提交 Fortify 扫描。管道首先构建解决方案,然后扫描它。我想排除我的解决方案中的几个单元测试项目,但我看到的建议解决方案中 none 似乎有效。是因为我不能使用相对路径吗?这些是我在其他 Fortify SCA 构建选项中尝试过的选项:

-exclude "**/UnitTests/**/*"
-exclude "**/UnitTests/*"
-exclude "*/UnitTests/*.*"
-exclude "**\UnitTests\*.*"

UnitTests 是 .Net 解决方案中的项目名称。所有要排除的文件都直接位于该名称的文件夹下。

试试这个:

-exclude "<dir>/**/UnitTests/**"

它匹配在指定目录中找到的路径中包含 UnitTests 的所有目录和文件,包括 UnitTests 作为文件名。此外,在 Windows 上,您可以使用反斜杠字符 () 作为目录分隔符,而不是正斜杠 (/)。

在其他 Fortify SCA 构建选项部分,试试这个:

-exclude $(Build.SourcesDirectory)\UnitTests\ -exclude $(Build.SourcesDirectory)\**\UnitTests\

如果源目录中有空格,请使用引号。这应该忽略根文件夹中的 UnitTests 文件夹(如果有的话),以及子文件夹中的任何文件夹。我发现最后一个 \\**.

效果更好

参考:SCA Guide 20.2 第 123 页 - 指定文件和目录