本主题说明如何从 C/C++test 命令行界面(cpptestcli)运行测试,这在命令行界面(cli)中进行了介绍。

各节内容包括:

先决条件

命令行模式需要一个命令行界面许可证 ( C/C++test 自动化版可获取)。

C/C++test 有两种命令行界面许可证可用:

  1. 扩展命令行模式 在自动化版中提供,并且可用于自定义版本。
  2. 桌面命令行模式 只对自定义版本可用。桌面命令行模式提供了与扩展命令行模式类似的函数,除了并行处理被限制为在桌面命令行模式下针对给定任务(例如静态分析)同时执行 8 个并行线程。

设置概述

Parasoft C/C++test Professional 有两种用户模式:在图形用户界面中桌面交互使用和通过命令行界面(CLI)的命令行模式。CLI 界面是自动版本的标准功能。 

CLI 模式通常用于结合常规/持续构建或作为自动回归测试基础结构的一部分执行常规或持续代码分析和测试。可以调用 C/C++test CLI在指定的项目资源上作为 CLI 执行的一部分,C/C++test 可以执行以下一项或多项操作:

作为执行的一部分,C/C++test 可以使用您的 SCM 客户端(如果支持)自动从 SCM 系统检索文件修改信息,并根据代码分析和执行测试的结果指定每个人的生成任务。

通过【测试配置】和【首选项】控制 C/C++test 的特定执行选项。

可以从内建集中获取测试配置 ,也可以在图形用户界面中使用 C/C++test 交互模式创建测试配置。我们建议将内建配置用作特定于客户的配置的起始模板。

可以从 C/C++test 图形用户界面配置首选项。大多数首选项设置还可以随配置文件一起提供,该配置文件作为 CLI 调用的参数提供。本地设置(选项)文件中提供了配置文件首选项设置的表。默认情况下,将应用从图形用户界面设置的 C/C++test 首选项。可以单独使用包含在给定运行中的配置文件中包含的优先级值来覆盖这些值。这使您可以为所有 CLI 运行配置一组基本的首选项,然后通过为具有给定【测试配置】的特定运行提供附加的配置文件,根据需要更改各个设置。例如,这可以用于在不同运行的报告中包含不同的信息,或更改报告的电子邮件分发选项,包括报告名称,电子邮件标题等。

步骤 1:配置首选项

可通过Parasoft> 首选项菜单访问 C/C++test 首选项。首先配置以下首选项:

步骤 2:自定义测试配置

按照 配置测试配置中所述创建自定义测试配置。

步骤 3:创建一个本地设置文件

本地设置(选项)文件中所述创建一个本地设置文件。

步骤 4:在当前正在运行的构建系统中激活 CLI(例如批处理脚本)

例如,您的命令行可能类似于以下内容:

每次批量运行后将发送报告,并且趋势报告将填充数据。还可以通过 Parasoft>浏览> 团队服务器报告来查看报告。

Cli 的用法

从命令行进行测试的一般过程如下:

除非被测试的源文件包含头文件,否则 C/C++test 不会直接测试头文件。请参见 如何分析头文件/分析了哪些文件?Troubleshooting and FAQs#How do I analyze header_files有关详细信息。

C/C++test 确实对实例化的函数模板和类模板的实例化成员执行静态分析和单元测试。有关详细信息,请参见支持函数模板

  • C/C++test 不支持使用 Cygwin 的 "/cygdrive/DISK/PATH” 格式指定的文件路径;而是使用标准 Windows 路径格式。
  • 根据 shell/控制台,文件路径中的反斜杠应转义/加倍;例如"C:\\MyLocation\\MyFile"
  • 当在选项文件中使用时(使用-localsettings选项),必须将文件路径中的所有反斜杠转义/加倍。另外,您可以使用正斜杠;例如 "C:/MyLocation/MyFile".

Cli 调用

cpptestcli 的一般调用形式为:

通常,调用遵循以下模式:

如果要从分析/测试中排除某些文件(例如,防止对自动生成的文件进行静态分析),则可以按照从测试中排除项目资源中的说明指示不应测试哪些项目资源。在图形用户界面中执行此配置,然后将该设置应用于该项目上的所有测试-从图形用户界面或从命令行。

使用 -data 指定您的 Eclipse 工作空间

如果您与要测试的 Eclipse 工作空间不在同一目录中,则需要将cpptestcli-data选项一起使用。例如,此 Windows 命令通过应用“我的配置”测试配置来测试 C/C++test 示例项目,生成结果报告,并将该报告保存在 c:\reports\Report1 目录中

cpptestcli -data "c:\Documents and Settings\cynthia\ApplicationData\Parasoft\C++test\workspace" -resource "C++test Example" -config user://"My Configuration" -report c:\reports\Report1

如果您与要测试的工作空间位于同一目录中,则可以不使用-data选项调用cpptestcli。例如,此 Windows 命令通过应用“我的配置测试配置”来测试 C++test 示例项目,生成结果报告,并将该报告保存在 c:\reports\Report1 目录:

cpptestcli -resource "C++test Example" -config user://"My Configuration" -report c:\reports\Report1

Cli 选项

下表列出了可用的cpptestcli选项。

常规选项


导入和创建项目的选项

选项目的注意

-import %ECLIPSE_PROJECT%

将指定的 Eclipse 项目导入到 Eclipse 工作空间中。

如果 %ECLIPSE_PROJECT% 是 .project 文件,则将导入所选项目

如果是目录,那么将导入在所选目录和子目录中找到的所有 Eclipse 项目。

示例:

-import \".project\"

-import \"c:\\DevelRootDir\"

使用 -import 时,不需要 -config选项。如果指定了-config选项,则将测试包含导入项目的工作空间;否则,将导入项目,但不会执行测试。

-bdf <cpptestscan.bdf>

从构建定义文件 (.bdf) 创建 C/C++test 项目。 

要准备 BDF,请使用 cpptestscan 实用程序作为编译器/链接器可执行文件的前缀来执行项目的构建。

该选项还支持在运行静态分析时由 Cmake 构建系统生成的 JSON 格式的文件。当前不支持使用此选项指定用于执行单元测试的 JSON 文件。

示例:

-bdf "cpptestscan.bdf"

有关详细信息,请参见使用现有构建系统创建项目 。可以在选项文件中指定选项。有关详细信息,请参见本地设置(选项)文件

使用 -import 时,不需要 -config选项。如果指定了-config选项,则将测试包含导入项目的工作空间;否则,将导入项目,但不会执行测试。

-ccs %CCS_PROJECT%

导入 TI Code Composer Studio 项目,如果%CCS_PROJECT%为:

Pjt 项目文件 - 所选项目将被导入
目录 - 所选目录和子目录中找到的所有 .pjt 项目将被导入

示例:

-ccs "MyProject.pjt"

-ccs "c:\DevelRootDir"

使用-import 时,不需要 -config选项。如果指定了config选项,则将测试包含导入项目的工作空间;否则,将导入项目,但不会执行测试。

-dsp <.dsp file | .dsw file | root location>

从 Microsoft Visual Studio 项目创建 C/C++test 项目。指定 6.0 项目文件(.dsp),Microsoft Visual Studio 6.0 工作空间文件(.dsw)或根目录。

可以在选项文件中指定 Visual Studio 6.0 项目导入选项。有关详细信息,请参见本地设置(选项)文件

使用-import 时,不需要 -config选项。如果指定了-config选项,则将测试包含导入项目的工作空间;否则,将导入项目,但不会执行测试。

-ewp %EWP_PROJECT%

导入 IAR Embedded Workbench 项目。如果 %EWP_PROJECT%
.ewp 项目文件-则将导入所选项目

.Eww 工作空间文件-将导入工作空间中的所有项目

目录 - 将导入在所选目录和子目录中找到的所有 .ewp 项目

示例:

-ewp "MyProject.ewp"

-ewp "MyWorkspace.eww"

-ewp "c:\DevelRootDir"

使用-import 时,不需要 -config选项。如果指定了-config选项,则将测试包含导入项目的工作空间;否则,将导入项目,但不会执行测试。

-gpj <.prj_root_file>

从 Green Hills .gpj 项目创建 C/C++test 项目。

可以在选项文件中指定 Green Hills .gpj 项目导入选项。有关详细信息,请参见 本地设置(选项)文件。使用-import时不需要
-config 选项。如果指定了-config选项,则将测试包含导入项目的工作空间;否则,将导入项目,但不会执行测试。

-hew %HEW_PROJECT%

导入 Highperformance Embedded Workshop 项目。将以下内容指定为%HEW_PROJECT%:
.hwp 项目文件: 导入所选项目
.hws 工作空间文件: 导入工作空间的所有项目
目录: 在所选目录和子目录中导入找到的所有 .hwp 项目

使用-import 时,不需要 -config选项。如果指定了 -config 选项,则将测试包含导入项目的工作空间;否则,将导入项目,但不会执行测试。

示例:

-hew "MyProject.hwp"

-hew "MyWorkspace.hws"

-hew "c:\DevelRootDir"

-uv %KEILUV_PROJECT%

导入 Keil uVision3 项目。如果 %KEILUV_PROJECT% 是:

.Uv2 项目文件 - 将导入所选项目

目录 - 在选定目录和子目录中找到的所有 .uv2 项目

使用-import 时,不需要 -config选项。如果指定了-config选项,则将测试包含导入项目的工作空间;否则,将导入项目,但不会执行测试。

示例:

-uv "MyProject.uv2"

-uv "c:\DevelRootDir"

-vcp %VCP_PROJECT%

导入 Microsoft eMbedded Visual C++ 4.0 项目。如果 %VCP_PROJECT% 是:

.vcp 项目文件 - 将导入所选项目

.vcw 工作空间文件-将导入工作空间中的所有项目

目录-在所选目录和子目录中导入找到的所有 .vcp 项目

使用-import 时,不需要-config选项。如果指定了-config选项,则将测试包含导入项目的工作空间;否则,将导入项目,但不会执行测试。

示例:

-vcp "MyProject.vcp"

-vcp "MyWorkspace.vcw"

-vcp "c:\DevelRootDir"

-wpj %WPJ_PROJECT%

导入 Wind River Tornado 项目。如果 %WPJ_PROJECT% 是:

.wpj 项目文件 - 将导入所选项目

.wsp 工作空间文件 - 将导入工作空间中的所有项目

目录-在所选目录和子目录中导入找到的所有 .wpj 项目。

使用-import 时,不需要-config选项。如果指定了-config选项,则将测试包含导入项目的工作空间;否则,将导入项目,但不会执行测试。

示例:

-wpj "MyProject.wpj"

-wpj "MyWorkspace.wsp"

-wpj "c:\DevelRootDir"

Eclipse Workbench 的 C/C++test 中可用的测试项目选项

选项目的注意

-data %WORKSPACE_DIR%

指定要使用的 Eclipse 工作空间目录的位置。

默认为当前用户的依赖目录。

-resource %RESOURCE%

指定要测试的工作空间资源%RESOURCE% 的路径。

多次使用以指定多个资源。

当资源路径包含空格或其他非字母数字字符时,使用引号。

如果 %RESOURCE% 是 .properties 文件,则与com.parasoft.xtest.checkers.resources 相对应的值将解释为用冒号(:)- 分隔的资源列表。用这种方法只能指定一个属性文件。如果 %RESOURCE% 是.lst 文件,则每一行都将被视为资源。如果在命令行上未指定资源,则将测试整个工作空间。

SVN 和其他源代码控制系统支持团队项目设置文件(PSF)文件(取决于安装的 Eclipse 插件功能)。

路径(甚至是绝对路径)相对于 -data 参数指定的工作空间。

示例:

-resource "Acme Project"

-resource "/MyProject/src/com/acme/MyClassTest.java"

-resource "/MyProject/src/com/acme"

-resource testedprojects.properties

  • 要查看有效命令行选项的列表,请输入 cpptestcli -help
  • Cpptestcli 自动通过电子邮件向指定的组管理人员和架构师发送一份报告,该报告列出了所有的团队/项目错误,并确定哪个开发人员应对每个错误负责。如果未报告错误,则将发送报告,除非选项文件包含 report.mail.on.error.only=true 选项。
  • 如果满足适当的先决条件,则cpptestcli会自动通过电子邮件向每个开发人员发送一份报告,该报告仅包含与他或她的工作有关的错误/结果。如果未报告特定开发人员的错误,则不会通过电子邮件将报告发送给该开发人员。

本地设置(选项)文件

可以在命令行中传递 Localsettings 文件,以控制报告、任务分配、许可等选项。这使您可以:

您可以为不同的项目创建不同的选项文件,然后使用-localsettings选项指示当前命令行测试应使用哪个文件。

请参见 配置本地设置以获取有关 localsettings 文件和可用设置列表的信息。