主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

polyspace-results-export

(系统命令)将 Polyspace 结果导出为 CSV 或 JSON 等外部格式

说明

polyspace-results-export 系统命令将 Polyspace® 静态分析结果导出为 CSV 或 JSON 等外部格式。

注意

此 Polyspace 命令在 polyspaceroot\polyspace\bin 中可用。这里,polyspaceroot 是 Polyspace 的安装文件夹,例如 C:\Program Files\Polyspace\R2025a(请参阅适用于桌面端产品的安装文件夹或适用于服务器产品的安装文件夹)。为避免键入此命令的完整路径,请将此位置添加到操作系统中的 PATH 环境变量中。

polyspace-results-export -format exportFormat -results-dir resultsFolder [export options] 将存储在 resultsFolder 中的 Polyspace 分析结果导出为外部格式 exportFormat

示例

polyspace-results-export -format exportFormat -host hostName -run-id runID [export options] [polyspace access options] 将存储在 Polyspace Access™ 中的 Polyspace 分析结果导出为外部格式 exportFormat。使用 hostName 指定 Polyspace Access 实例,使用 runID 指定 Polyspace Access 上的工程。

Polyspace Access 导出结果时,导出的结果将包括每个检查结果的 Polyspace Access URL。点击 URL,在 Polyspace Access 接口中查看与检查结果相关的代码、结果详细信息和其他信息。

示例

示例

全部折叠

在 Polyspace 用户界面中将 myProject 工程的结果导出为 JSON 格式。

假设您的工程存储在 C:\Polyspace_Workspace 中。要导出工程中特定模块的结果,请指定直接包含该模块结果的文件夹的路径。

polyspace-results-export -format json-sarif -results-dir C:\Polyspace_Workspace\myProject\Module_1\BF_Result -output-name C:\Polyspace_Workspace\reports\myProject\myProject.json

注意

要在命令行中生成有关 Polyspace Access 的结果报告,您必须安装 Polyspace Bug Finder™ Server™Polyspace Code Prover™ Server

假设您想要将 Polyspace Access 上的工程结果导出为 JSON 格式。

要连接到 Polyspace Access,请提供主机名和登录凭据(包括加密密码)。要加密您的密码,请使用 polyspace-access 命令并在提示符处输入用户名和密码。

polyspace-access -encrypt-password 
login: jsmith
password:
CRYPTED_PASSWORD LAMMMEACDMKEFELKMNDCONEAPECEEKPL
Command Completed

将登录名和加密密码存储在凭据文件中,并限制对此文件的读取和写入权限。例如,打开文本编辑器,将以下两行代码复制到编辑器中,然后将文件另存为 myCredentials.txt 文件。

 -login jsmith
 -encrypted-password LAMMMEACDMKEFELKMNDCONEAPECEEKPL
要限制文件权限,请右键点击文件,然后在 Linux® 中选择权限选项卡或在 Windows® 中选择安全选项卡。

要指定 Polyspace Access 上的工程结果,请指定工程的运行 ID。要获取包含最新运行 ID 的工程列表,请使用 polyspace-access -list-project (Polyspace Access) 命令。

polyspace-access -host example-access-server -credentials-file myCredentials.txt -list-project
Connecting to https://example-access-server:9443
Connecting as jsmith
Get project list with the last Run Id
Restricted/Code_Prover_Example (Code Prover) RUN_ID 14
public/Bug_Finder_Example (Bug Finder) RUN_ID 24
public/CP/Code_Prover_Example (Polyspace Code Prover) RUN_ID 16
public/Polyspace (Code Prover) RUN_ID 28
Command Completed

如果 Polyspace Access 使用 HTTPS 协议,请使用 polyspace-report-generator 二进制文件配置 polyspace-results-export,以启用与 Polyspace Access 通过 HTTPS 进行通信。请参阅使用客户端密钥库配置报告生成器

将运行 ID 为 16 的工程结果导出为 JSON 格式。

polyspace-results-export -credentials-file myCredentials.txt -format json-sarif -host myAccessServer -run-id 16

输入参数

全部折叠

导出 Polyspace 结果的格式:csv 用于制表符分隔值 (TSV) 输出,json-sarif 用于 JSON 输出。如果您使用 polyspace-bug-finder-access 命令进行单文件分析(Polyspace 作为您编写的代码),则可以使用格式 console 将结果导出到控制台。

每个结果包括结果名称、家族等信息。TSV 和 JSON 格式导出的内容几乎相同,但导出的内容可能以不同的名称引用相同类型的信息。

  • 在 TSV 格式中,每个结果由以选项卡分隔的信息组成,这些信息以列的形式排列,例如 IDFamilyGroupColorCheck 等。

    要打包并可能过滤您的结果数据,请使用 csv 格式。例如,您可以将 TSV 文件导入到 Microsoft® Excel®,并对结果使用 Excel 过滤器。

  • 在 JSON 格式中,每个结果几乎包含与 JSON 对象属性相同的信息。结果显示的属性有时会使用与 CSV 格式中使用的名称不同的名称。例如,要获取结果的完整规则检查项名称,请将结果的 ruleId 属性与规则的 idname 属性结合使用。差异的原因在于,JSON 格式遵循了 OASIS 静态分析结果交换格式 (SARIF) 提供的标准标记规范。

    JSON 格式包含一些附加信息,例如检查项的简短名称和结果随附的完整消息。如果您想使用此短名或消息,请使用 JSON 格式。您也可以使用此格式以更标准化的方式报告结果。例如,如果您使用多个静态分析工具,并希望使用单个解析算法在一个接口中报告其结果,则可以将所有结果导出为标准的 SARIF JSON 格式。

控制台输出预格式化为类似于编译器错误和警告的形式,包含的信息比其他格式少。console 格式仅适用于 Polyspace as You Code 的结果。特别是,如果您将 Polyspace 作为您在 Polyspace Access Web 接口中使用集成结果得出的代码基准,请使用 JSON 或 CSV 格式以从基准中获得最大收益。请参阅在命令行中设置基线 Polyspace as You Code 结果 (Polyspace Access)

包含 Polyspace 分析结果(.psbf.pscp 文件)的文件夹路径。如果未指定文件夹路径,则该命令将在当前文件夹中查找分析结果。

示例: C:\Polyspace_Workspace\My_project\Module_1\results

hostName 对应于您在 Polyspace Access 接口的 URL 中指定的主机名,例如 https://hostName:port/metrics/index.html。如果您不确定应使用哪个主机名,请联系您的 Polyspace Access 管理员。默认主机名为 localhost。您必须指定一个主机名,才能为 Polyspace Access 数据库上的结果生成报告。

示例: my-company-server

导出的工程检查结果的运行 ID。您上传到 Polyspace Access 的每个分析运行都会被分配一个唯一的运行 ID。

您可以在 Polyspace Access Web 接口中查看工程的运行 ID。要在命令行中获取工程的运行 ID,请使用命令 polyspace-access -list-project (Polyspace Access)

选项描述
-output-name outputName

导出文件的名称。默认名称为 results_list.txt (TSV) 或 results_list.json (JSON)。

文件保存在调用命令的路径下。要将文件保存到其他文件夹,请指定文件夹的完整路径,例如 -output-name C:\PathTo\OtherFolder

此选项与控制台输出格式 (-format console) 不兼容。

-set-language-english如果显示语言设置为英语以外的其他语言,但您希望导出结果为英语,请使用此选项。
-key-mode file-scope | function-scope

指定导出结果中列的条目计算方式:

  • file-scope(默认)- 密钥由结果名称、结果类型和文件位置计算得出。

  • function-scope - 如果结果位于函数内,则根据结果名称、结果类型和函数位置计算键;否则,根据文件位置计算键。如果结果位于函数内,则在此模式下生成的键前会附加前缀 FN

另请参阅Enable Function Scope for Exported Keys

要查看此命令的可用选项,请输入 polyspace-results-export -h

选项描述

-port portNumber

portNumber 对应于您在 Polyspace Access 接口的 URL 中指定的端口号,例如 https://hostname:portNumber/metrics/index.html。如果您不确定要使用哪个端口号,请联系您的 Polyspace Access 管理员。默认端口号为 9443

-protocol http | https

使用 HTTP 协议连接到 Polyspace Access。默认值为 https
-credentials-file file_path

存储登录凭据的文本文件的完整路径。例如,如果您在脚本中使用需要 Polyspace Access 凭据的命令,但不想将凭据存储在该脚本中,则使用此选项。在脚本运行期间,检查当前正在运行的进程的人无法看到您的凭据。

您只能在文件中存储一组凭据,作为单独行中的 -login-encrypted-password 条目,例如:

-login jsmith
-encrypted-password LAMMMEACDMKEFELKMNDCONEAPECEEKPL
或作为 -api-key 条目:
-api-key keyValue123
确保限制存储凭据的文件的读写权限。例如,要限制对 Linux 中文件 login.txt 的读写权限,请使用以下命令:
chmod go-rwx login.txt

-api-key keyValue

您用作登录凭据的 API 密钥,无需提供登录名和加密密码。要为用户分配 API 密钥,请参阅 配置 User Manager (Polyspace Access) 或联系您的 Polyspace Access 管理员。

例如,如果您使用的是需要 Polyspace Access 登录凭据的命令,作为 CI 工具(如 Jenkins®)自动化脚本的一部分,则应使用 API 密钥。如果用户更新了密码,您无需在脚本中更新与该用户关联的 API 密钥。

建议您将 API 密钥存储在文本文件中,并通过使用 -credentials-file 将该文件传递给命令。请参阅选项 -credentials-file 的说明。

-login username

-encrypted-password ENCRYPTED_PASSWD

您用于登录 Polyspace Access 的凭据。-encrypted-password 的参量是 polyspace-access -encrypt-password (Polyspace Access) 命令的输出。

版本历史记录

在 R2020b 中推出

全部展开