发送包含 Polyspace Bug Finder Server 结果的电子邮件通知
如果您将运行 Polyspace® 分析作为持续集成的一部分,则每次有新的代码提交时都会产生新结果。您不仅会在已修改的组件中看到新结果,还会在依赖于已修改组件的组件中看到新结果。您可以设置电子邮件警报,让组件负责人在其组件中出现新的 Polyspace 结果时收到通知。
创建电子邮件通知
要创建电子邮件通知,请执行以下操作:
将新的分析结果导出为制表符分隔的文本文件(
.tsv
格式)。对于每个结果,该文件都包含用于在 Polyspace Access Web 界面中打开结果的链接。应用过滤器可以导出特定类型的结果,例如影响程度高的缺陷。如果需要,您还可以使用搜索和替换实用工具对导出的文件应用额外的过滤器。请参阅导出结果并将其用作电子邮件附件。
发送附件包含结果文件的电子邮件。
例如,如果您在 Jenkins 中使用某个电子邮件插件,则可以创建一个编译后步骤以在分析完成后发送电子邮件。
如果您在 Jenkins 中使用 Polyspace 插件,则可以将 Polyspace 辅助工具用于整个电子邮件通知过程。请参阅使用 Jenkins 进行 Polyspace 分析的示例脚本。
或者,也可以根据结果的文件路径将结果直接分配给负责人。您可以设置电子邮件通知来按负责人导出单独的结果文件,向每个负责人发送电子邮件并在附件中包含对应的结果文件。请参阅分配负责人并导出指定的检查结果。
前提条件
要运行本教程,需要满足以下条件:
必须已向 Polyspace Access™ Web 服务器上传了一些结果。如果您已完成在服务器端运行 Polyspace Bug Finder 并将结果上传到 Web 界面教程,则在 Polyspace Access Web 界面的工程资源管理器窗格中应当会看到
testProject
文件夹。该文件夹包含一个myFirstProject
工程。要查看工程中的结果,请选择
myFirstProject
,然后点击审查按钮。您会看到一个缺陷列表。信息列显示缺陷的影响程度。在本教程中,仅影响程度高的缺陷会被导出,导出结果将用作电子邮件附件。您必须能够从命令行与 Polyspace Access 界面进行交互。例如,导航到
并输入以下命令:polyspaceserverroot
\polyspace\binpolyspace-access login -list-project
其中,
是 Polyspace Bug Finder™ Server™ 的安装文件夹,例如polyspaceserverroot
C:\Program Files\Polyspace Server\R2025a
。
变量是指以下选项组合。每次使用login
polyspace-access
命令时都需要提供这些选项。-host hostName -port portNumber -login username -encrypted-password pwd
其中,
是 Polyspace Access Web 服务器的名称。对于本地托管的服务器,请使用hostName
localhost
。
是服务器的可选端口号。如果省略端口号,则将使用portNumber
9443
。
和username
分别指登录名和您的密码的加密版本。要创建加密密码,请输入:pwd
polyspace-access -encrypt-password
复制加密密码并在以后使用
polyspace-access
命令时提供此密码。
导出结果并将其用作电子邮件附件
您可以导出某个工程中的所有结果,也可以仅导出某些类型的结果。
打开一个命令行窗口。导航到您要导出结果的文件夹。
要导出所有结果,请输入以下命令:
polyspace-access login -export testProject/myFirstProject -output .\result.txt
如果仅导出影响程度高的缺陷,请输入以下命令:
polyspace-access login -export testProject/myFirstProject -defects High -output .\result_high_impact.txt
在电子表格查看实用工具(例如 Microsoft® Excel®)中打开每个文本文件。在第一个文件中,您会看到所有缺陷;但是,在第二个文件中,您仅会看到影响程度高的缺陷。除 -defects High
之外,还可以应用其他过滤器。例如:
要仅查看在同一工程的上次分析之后新出现的缺陷,请使用
-new-findings
选项。要应用一组更细粒度的过滤器,您可以使用软件质量目标 (SQO)。软件质量目标是通过一组逐步严格的 SQO 级别(编号从 1 到 6)指定的。您可以在 Polyspace Access Web 界面中自定义每个级别的需求,然后将
-open-findings-for-sqo
选项与级别编号配合使用,以仅导出必须审查才能满足需求的那些结果。另请参阅Evaluate Polyspace Bug Finder Results Against Bug Finder Quality Objectives。
要查看所有过滤选项,请输入:
polyspace-access -h -export |
您可以配置电子邮件实用工具以通过附件形式发送这些导出的文件。
如果需要,您还可以使用搜索和替换实用工具对导出的文件应用额外的过滤器。例如,对结果文件使用搜索和替换实用工具以仅包括来自特定文件和函数的结果。在 Linux® 中,您可以使用 grep
和 sed
以仅保留特定文件中的结果。
除了导出到文本文件外,您还可以使用预定义的报告模板生成 PDF 或 Word 格式的报告。有关详细信息,请参阅 polyspace-report-generator
。
分配负责人并导出指定的检查结果
您可以为特定文件或文件夹中的结果分配负责人。然后,您可以为每个负责人导出一个结果文件,向每个负责人发送电子邮件并在附件中包含对应的文件。
您可以在 Polyspace Access Web 界面中或命令行上分配负责人。
在本教程中,我们将 numerical.c
文件中的所有结果指定给 jsmith
,并将 dataflow.c
文件中的所有结果分配给 jboyd
。
polyspace-access login -set-unassigned-findings testProject/myFirstProject -owner jsmith -source-contains numerical.c polyspace-access login -set-unassigned-findings testProject/myFirstProject -owner jboyd -source-contains dataflow.c |
在完成任务分配后,为每个负责人导出一个结果文件。
polyspace-access login -export testProject/myFirstProject -output .\results.txt -output-per-owner |
这些文件包含导出的结果:
results.txt
包含所有结果。results_jsmith.txt
和results_jboyd.txt
分别包含分配给jsmith
和jboyd
的结果。results.txt.owners.list
包含负责人列表,在本例中为:jsmith jboyd
将结果分配给负责人之前,请使用 -dryrun
选项执行任务演习。该选项不执行结果指定,仅会显示包含指定结果的文件,以及为其分配了检查结果的负责人。
另请参阅
polyspace-access
-export
(Polyspace Access) | polyspace-access
-set-unassigned-findings
(Polyspace Access) | polyspace-access
-list-project
(Polyspace Access)