本主题说明如何从 C/C++test 命令行界面(cpptestcli
)运行测试,这在命令行界面(cli)中进行了介绍。
各节内容包括:
命令行模式需要一个命令行界面许可证 ( C++test Server Edition 提供 )。
C++test 有两种命令行界面许可证可用:
|
对于命令行执行,您将需要确保安装目录在该路径上,或者使用可执行文件的完整路径启动 cpptest。(例如,c:\parasoft\c++test\cpptestcli.exe
).必须先将其添加到 Visual Studio 项目中,然后才能使用 C/C++test 测试代码。请参见创建项目。
为了使cpptestcli
通过电子邮件向每个开发人员发送仅包含与其工作有关的错误/结果的报告,必须满足以下条件之一:
您已将 C++test 配置为基于源代码管理数据计算代码作者,并且您的项目位于受支持的源代码管理系统下,并且每个开发人员的源代码管理用户名+邮件域(使用选项文件和-localsettings
选项指定- -localsettings %LOCALSETTINGS_FILE%
)与开发人员的电子邮件地址匹配。
您已将 C++test 配置为根据本地用户和每个用户名+邮件域(使用选项文件和-localsettings %LOCALSETTINGS_FILE%
中所述的-localsettings
选项指定)来计算代码作者与开发者的电子邮件地址匹配。
Parasoft C/C++test Professional 有两种用户模式:在 GUI 中桌面交互使用和通过命令行界面(CLI)的命令行模式。 CLI 界面是 Automation Edition 的标准功能。
CLI 模式通常用于结合常规/持续构建或作为自动回归测试基础结构的一部分执行常规或连续代码分析和测试。可以调用 C/C++test CLI 在完整的 Visual Studio 解决方案上,或者在解决方案中包含一个或多个项目或源文件。 作为 CLI 执行的一部分,C/C++test 可以执行以下一项或多项操作:
执行单元测试在给定的解决方案中。
作为执行的一部分,C++test 可以使用您的 SCM 客户端(如果支持)自动从 SCM 系统检索文件修改信息,并根据代码分析和执行测试的结果为特定个人生成任务。
通过【测试配置】和【首选项】控制 C/C++test 的特定执行选项。
可以从内建集中获取测试配置 ,也可以在 GUI 中使用 C/C++test 交互模式创建测试配置。我们建议将内建配置用作特定于客户的配置的起始模板。
可以从 C/C++test GUI 配置首选项。大多数首选项设置还可以随配置文件一起提供,该配置文件作为 CLI 调用的参数提供。本地设置(选项)文件中提供了配置文件首选项设置的表。默认情况下,将应用从 GUI 设置的 C/C++test 首选项。可以单独使用包含在给定运行中的配置文件中包含的优先级值来覆盖这些值。这使您可以为所有 CLI 运行配置一组基本的首选项,然后通过为具有给定【测试配置】的特定运行提供附加的配置文件,根据需要更改各个设置。例如,这可以用于在不同运行的报告中包含不同的信息,或更改报告的电子邮件分发选项,包括报告名称,电子邮件标题等。
可通过Parasoft> 首选项菜单访问 C/C++test 首选项。 首先配置以下首选项:
localhost
。除非在安装时更改了团队服务器的默认端口(18888),否则请不要在此处更改端口。单击 测试连接 以验证正确的设置。报告: 默认情况下启用了以下选项,并且是一个很好的起点:
开发人员的详细报告 (包括任务分解以及详细信息)。
作者的任务概述(摘要表)。
命令行模式下生成格式化的报告。
抑制详细信息(仅适用于静态分析)。
电子邮件: 输入将用于发送带有报告的电子邮件的设置。这必须是可从 C++test 测试机访问的电子邮件服务器上的现有电子邮件帐户。
报告>电子邮件通知:
如果需要,请启用通过电子邮件发送报告。无论此设置如何,报告始终将上传到 Parasoft 团队服务器中以供以后查看(由 CLI 选项控制)。电子邮件分发将使用上面的电子邮件设置。
管理器报告包含 C++test 生成的所有测试结果的汇总。开发人员报告仅包含单个开发人员的结果。启用选项并相应地指定电子邮件地址。
按照 配置测试配置中所述创建自定义测试配置。
如本地设置(选项)文件中所述创建一个本地设置文件。
例如,您的命令行可能类似于以下内容:
cpptestcli -solution "c:\MySolution" -resource "ProjectToTest" -config builtin://ShouldHaveRules -publish -localsettings acme_policy.settings
从命令行进行测试的一般过程如下:
cpptestcli
实用程序以及适当的选项,可以在命令行模式下启动分析。cli 选项中提供了选项的完整列表。关键选项是:除非被测试的源文件包含标头,否则 C/C++test 不会直接测试标头。请参见 如何分析头文件/分析了哪些文件?Troubleshooting and FAQs#How do I analyze header_files有关详细信息。 |
C/C++test 确实对实例化的函数模板和类模板的实例化成员执行静态分析和单元测试。有关详细信息,请参见支持函数模板 。 |
|
cpptestcli
的一般调用形式为:
cpptestcli [选项]
通常,调用遵循以下模式:
如果要从分析/测试中排除某些文件(例如,防止对自动生成的文件进行静态分析),则可以按照从测试中排除项目资源中的说明指示不应测试哪些项目资源。 在 GUI 中执行此配置,然后将该设置应用于该项目上的所有测试-从 GUI 或从命令行。 |
下表列出了可用的cpptestcli
选项。
-config
%CONFIG_URL% -
Specifies that you want to run the Test Configuration available at %CONFIG_URL%
.
除非为导入项目,否则此参数是必需的。%CONFIG_URL%
被解析为 URL,测试配置的名称或本地文件的路径。示例:-config "mylocalconfig.properties"
-config "http://intranet.acme.com/cpptest/team_config.properties"
-config "builtin://Demo Configuration"
-config "Demo Configuration"
-config "user://My First Configuration”
-config "team://Team Configuration"
-config "team://teamconfig.properties"
-help
- 显示帮助信息。不运行测试。-localsettings
%LOCALSETTINGS_FILE% -
读取选项文件%LOCALSETTINGS_FILE%
以获取全局首选项。 这些设置指定详细信息,如 Parasoft DTP设置、电子邮件设置和团队服务器设置。-nobuild
- 在测试项目之前防止 C++test 重建项目。如果在测试运行之前已经构建了项目,请使用此选项。-fail
- 如果报告违规或设置问题,则通过返回非零退出代码来使构建失败(请参见命令行退出代码 有关过程失败时返回的退出代码的详细信息)。-publish
- 将报告发布到 DTP。您可以在 GUI 或命令行模式下将报告发送到 DTP; 请参见连接 DTP。-publishteamserver
- 将报告发布到团队服务器。可以在 GUI 或选项文件中指定团队服务器的位置(在 -localsettings %LOCALSETTINGS_FILE%
条目中进行了描述)。-report
%REPORT_FILE% -
生成给定文件 %REPORT_FILE%
的XML报告,并在同一目录中添加具有相同名称(和不同扩展名)的 HTML(或 PDF 或自定义格式,如果使用 report.format 选项指定的话)报告。filename.html
和 XML 报告 filename.xml
。-report filename.xml
-report filename.htm
-report filename.html
如果指定的路径以".html"/".htm"/".xml"扩展名结尾,则它将被视为要生成的报告文件的路径。否则,它将被视为应生成报告的目录的路径。
如果在命令中显式指定了文件名,并且指定位置已存在具有该名称的文件,则先前的报告将被覆盖。如果您的命令未明确指定文件名,则现有报告文件将不会被覆盖-新文件将被命名为 repXXXX.html,其中 XXXX 是随机数。
如果未指定-report
选项,则报告将被覆盖。在当前目录中使用默认名称"report.xml/html"生成。
-dtp.autoconfig
%PROJECT_NAME@SERVER
_NAME:port% -
拉取存储在 DTP 服务器上的设置(为便于维护而推荐使用-特别是如果您还没有本地存储的设置文件时)。
例如:-dtp.autoconfig
[email protected]:8080
-encodepass <plainpassword> -
生成给定密码的编码版本。显示报文“加密密码:<Encpass>”并终止 cli 应用程序。
如果您的夜间过程将 1)登录到团队服务器并 b)发送电子邮件,则可以使用此选项来加密所需的密码。
-showdetails
- 显示详细的测试进度信息。
-disablescm
- 断开源代码管理信息与解决方案和项目的连接。-solutionConfig
%SOLUTION_CONFIG_N
AME% -
指定用于构建解决方案和进行分析的解决方案配置。 调试
和 发布
是通用名称。如果将 switch 省略,则使用主动配置。强烈建议指定解决方案配置,因为主动配置可能会意外更改。-targetPlatform %TARGET_PLATFORM_N
AME% -
指定用于构建解决方案和分析的解决方案目标平台。 任何 CPU 和 x86 都是通用名称。如果省略,则使用主动配置。强烈建议指定目标平台,因为主动配置可能会意外更改。-appconsole stdout|% OUTPUT_FILE%
- 将 C++test 的控制台输出重定向到标准输出或 %OUTPUT_FILE%
文件。-appconsole stdout
(控制台重定向到标准输出)-appconsole console.out
(控制台重定向到 console.out 文件)-list-compilers
- 打印有效的编译器系列值的列表。 必须与 -solution
一起使用。
-list-configs - 打印有效的测试配置值列表。 必须与 -solution
一起使用。
-bdf
- 指定现有构建数据文件(.bdf)或另一个项目定义文件的路径,以收集输入范围。有关创建构建数据文件的信息,请参见使用 cpptestscan 或 cpptesttrace 创建构建数据文件 。该选项还支持在运行静态分析时由 Cmake 构建系统生成的 JSON 格式的文件。当前不支持使用-bdf
选项指定用于单元测试执行的 JSON 文件。 -include %PATTERN%,
-exclude %PATTERN% - 指定在测试期间要包含/排除的文件。
You must specify a file name or path after this option.您必须在此选项后指定文件名或路径。
模式可接受使用通配符 * 和 ?指定文件名。并且使用特殊通配符 ** 指定一个或多个路径名段。模式的语法类似于 Ant 文件集的语法,
例如:-include **/Bank.cpp
(测试 Bank.cpp 文件)
-include **/ATM/Bank/*.cpp
(测试文件夹 ATM/Bank 中的所有 .cpp 文件)
-include c:/ATM/Bank/Bank.cpp
(仅测试 c:/ATM/Bank/Bank.cpp 文件)
-exclude **/internal/**
(测试除文件夹"internal"的路径的类以外的所有内容)
-exclude **/*Test.cpp
(测试所有内容,但测试文件以 Test.cpp 结尾)
此外,如果模式是具有 .lst 扩展名的文件,则将其视为具有模式列表的文件。
例如,如果您使用 -include c:/include.lst 并且 include.lst 包含以下内容(每一行是视为单一模式):
**/Bank.cpp
**/ATM/Bank/*.cpp
c:/ATM/Bank/Bank.cpp
那么它与指定:-include **/Bank.cpp -include **/ATM/Bank/*.cpp
具有相同的效果
-include c:/ATM/Bank/Bank.cpp"
-useenv
- 使 IDE 使用 PATH,INCLUDE 和 LIB 环境变量进行 Visual C++ 编译,而不是使用【项目】选项(在【选项】对话框中)的【VC++ 目录】部分中指定的设置。-clearcmc
- 清理 Visual Studio 的组件模型缓存选项 | 目的 | 注意 |
---|---|---|
| 指定要使用的解决方案文件的位置。指定要使用的解决方案文件的位置。 | N/AN/A 指定要使用的解决方案文件的位置。 |
| 指定要测试的工作空间资源 | 多次使用以指定多个资源。 当资源路径包含空格或其他非字母数字字符时,使用引号。 如果 例如,要在 C++test ATM 示例中测试 或者 - 其他示例:
|
|
可以在命令行中传递 Localsettings 文件,以控制报告、任务分配、许可等选项。这使您可以:
您可以为不同的项目创建不同的选项文件,然后使用-localsettings
选项指示当前命令行测试应使用哪个文件。
请参见 配置本地设置以获取有关 localsettings 文件和可用设置列表的信息。