本主题说明如何将C ++ test 6.x测试资产迁移到C ++ test10.x。
此章节:
从 C++test 6.x 导入测试配置:
C++test 将创建一个新的用户定义的测试配置,其名称与 C++test 6.x 测试配置相同。以下数据将从 C++test 6.x 测试配置中导入:
<rule_category>-<rule_unique_id>
(myrule-123, user-456,
例如) 这样,C++test 10.x 将能够基于规则类别自动创建规则树结构。新配置中的所有其他参数将被设置为其默认值。
如果 C++test 10.x 无法访问在 C++test 6.x 测试配置中启用的任何规则,则将显示警告报文以提示您该问题。
如果将任何规则添加到 UNKNOWN 类别,则可以使用规则映射来更改类别。有关详细信息,请参见 修改规则类别、ID、名称和严重性级别。
需要将存储在团队服务器上的测试配置导入到 User 文件夹中,然后以 C++test 10.x 格式重新上传到团队服务器。
有两种方法可以从 C++test 6.x 导入“源代码测试”测试套件:将所有测试套件导入一个目录,或将每个 C++test 6.x 测试单元的测试套件导入一个单独的子目录。
在导入测试套件之前,请注意:
从 C++test 6.x 项目导入测试套件:
1。 选择 Parasoft> 向导 > 导入 C++test 6.x 测试套件。将打开一个向导。
2。 在C++test 6.x 项目文件 字段中,输入 C++test 6.x 项目文件的位置。该文件的扩展名为 .cpf。
3。 在 导入的测试套件位置 字段中,选择要使用的导入策略的下拉菜单项(将所有测试套件导入一个目录,或将每个 C++test 6.x 测试单元的测试套件导入到一个单独的子目录),然后自定义输入的文本以指定要存储测试套件的位置。指定位置时,可以使用以下变量:
${src_file_name}
- 上下文文件的名称(“上下文文件”是源代码文件,说明了在其中定义了给定测试功能的编译单元)。${src_file_base_name}
- 不带扩展名的上下文文件名。${src_file_ext}
- 上下文文件扩展。${src_file_loc_rel}
- 上下文文件项目的相对位置。${src_file_uid}
- 上下文文件的唯一标识符。${unit_name}
- 导入的测试套件 C++test 6.x 测试单元名称。
4。 如果需要,修改以下选项:
如果 C++test 重命名了测试套件或测试套件文件,添加适当的信息到导入的测试套件文件中;例如:
有关重命名的信息也可以在 C++test 控制台中找到;例如:
|
5。 点击 完成。
导入测试用例后,在控制台视图将显示进度信息。进度信息包括有关导入的测试套件和导入过程中遇到的问题的信息,以及导入摘要。
在导入过程中,C++test 使用 __CPTR_Construct_Argument 检查测试用例是否有过时的构造函数。如果发现调用任何过时的构造函数,它们将被更改为调用默认的构造函数。测试用例将包含适当的信息,并且原始代码将被注释掉。 在 C++test 控制台将显示警告报文。应该检查导入的测试套件文件。如果需要,应将测试用例修改为使用不同的构造函数。
启用适当的许可证功能后,可以在 C++test 中导入 C++test 2.3/6.x 本地测试。需要此许可证才能启用与本地测试有关的所有配置项(例如,【测试用例浏览器】中的添加新项> 本地测试操作,测试配置 对话框中的选项以及 C++test 项目属性中的【本地测试】项目配置)。 |
要将本低测试从 C++test 6.x 导入 C++test 10.x:
C++test 将自动将现有的本地测试添加到【测试用例浏览器】视图。它们将根据以下层次结构显示:
[NewProject]
[Native Tests (OldProject.cpf)]
[File1.cpp]
[Class1]
[Function1]
[TestCase1]
[TestCase2]
应该使用 C++test 10.x 功能添加新的测试用例。如果需要修改本机测试用例,则可以在 C++test 6.x 中进行,然后刷新【测试用例浏览器】以进行同步。
要在当前版本的 C++test 中运行本机测试:
<INSTALL_DIR>/configs/NativeTests
中指定要导入测试配置。'CPPTEST_INSTALL_DIR’
设置为 C++test 2.3/6.x 安装目录。CPPTEST_INSTALL_DIR=....
命令或(在 Windows 上)在控制面板> 系统> 高级> 环境变量中设置系统环境变量。配置测试配置以运行本地测试:
|
2。在【测试用例浏览器】中,选择要执行的测试。
3。运行为执行本地测试而创建的测试配置。
注释:
本地测试执行的结果将以与源代码测试相同的方式呈现:
您也可以:
有两种方法可以从 C++test 6.x 导入“用户”桩函数:将所有用户桩函数导入一个文件,或将每个 C++test 6.x 测试单元的用户桩函数导入一个单独的文件。如果导入单个文件,则对桩函数方法进行排序,以便可以轻松找到复制的桩函数。如果导入到单独的文件中,则文件名对应于 C++test 6.x 测试单元名。
从 C++test 6.x 项目导入用户桩函数:
1。 选择 Parasoft> 向导> 导入 C++test 6.x 用户桩函数。 将打开一个向导。
2。 在C++test 6.x 项目文件 字段中,输入 C++test 6.x 项目文件的位置。该文件的扩展名为 .cpf。
3。 在导入的桩函数位置 字段中,输入您想要存储桩函数的位置。您可以使用下拉菜单将此值配置为将所有桩函数导入到单个目录中,将给定 C++test 10.x 文本上下文的所有桩函数导入到单独的子目录中,或导入 C++test 6.x 测试单元给定的所有桩函数到单独的子目录中。
当尝试使用文件范围测试模式在 C++test 10.x 中重执行 C++test 6.x 行为时, 将给定 C++test 10.x 文本上下文的所有桩函数导入到单独的子目录选项可能特别有用。使用预定义的布局导入桩函数时,特定 C++test 10.x 测试上下文的所有桩函数都将放置在一个目录中。 为确保已执行的测试在【文件范围】测试模式下使用适当的桩函数集:
这样,当 C++test 在【文件范围】模式下测试 foo.cpp 文件时,将仅使用导入到 'foo.cpp’子目录中的桩函数。 |
4。 在重复桩函数导入策略区域中,使用可用的控件定义用于为单个函数导入多个桩函数的策略(例如,如果在多个 C++test 6.x 测试单元的上下文中定义了给定功能的桩函数)。可用的选项有:
5。 如果要 C++test 修改导入的桩函数定义以确保在适当的测试上下文中使用给定的桩函数,请启用 插入代码以用 C++test 10.x 测试上下文连接桩函数定义。例如:
// [...]
if (CppTest_IsCurrentContext("examples/ATM/Source Files/Account.cxx")) {
// [...]
对于 合并重复的桩函数 设置,此选项特别有用。此处 C++test 将创建一个单一的桩函数定义,该定义对于每个测试上下文的行为都将与 C++test 6.x 桩函数的行为相对应。桩函数的默认路径将调用桩函数函数的原始定义。示例:
double (::Account::CppTest_Stub_getBalance) () { if (CppTest_IsCurrentContext("/ATM/ATM/Account.cxx")) { //account } else if (CppTest_IsCurrentContext("/ATM/ATM/ATM.cxx")) { //atm } else { return getBalance(); } } |
6。 如果要 C++test 在每个导入的桩函数文件的开头添加指定的文本,请启用 在每个桩函数文件的开头插入自定义代码。例如,这可以用于将必需的头文件的通用 #include 指令集添加到所有导入的桩函数文件中。
7。 如果要 C++test 注释掉重复的桩函数,请启用注释掉重复的桩函数。
8。 点击 完成。
导入桩函数时,在控制台视图将显示进度信息。进度信息包括有关创建的桩函数文件,标识的重复桩函数和遇到的转换问题的详细信息,以及导入摘要。
C++test 将自动从原始源文件(在 C++test 6.x 项目中为桩函数创建的文件)中复制 #include 指令到导入的桩函数文件中。
下表显示了 C++test 6.x 和 C++test 10.x 在命令行用法上的差异。X 用于指示没有等效命令可用。
C++test 6.x | C++test 10.x |
---|---|
-Zicpf (file), --Zinput_cpf_project (file) | -data (WORKSPACE_DIR) |
-Zocpf (file), --Zoutput_cpf_project (file) | x |
-Zdsp (file), --Zdsp_project (file) | x |
-Zvcproj (file), --Zvcproj_project (file) | x |
-Zdc (name), --Zdsp_config (name) | x |
-Zdc (name), --Zdsp_config (name) | x |
-Zmcl (param), --Zmake_command_line (param) | x |
-Ztf (name), --Ztest_file (name) | -resource (RESOURCE) |
-Zeh (name), --Zexport_harness (name) | x |
-Zrl (name), --Zread_logs (name) | x |
-Ztc (name), --Ztest_config (name) | -config (CONFIG_URL) |
-Zpc (name), --Zproject_config (name) | x |
-Zso (file), --Zsave_options (file) | x |
-Zitc (file), --Zimport_test_cases (file) | x |
-Zito (file), --Zimport_test_objects (file) | x |
-Zis (file), --Zimport_suppressions (file) | x |
-Zrf (file), --Zreport_file (file) | -report (REPORT_FILE) |
-Zgh (name), --Zgenerate_html (name) | -report (REPORT_FILE) |
-Zhrd (dir), --Zhtml_report_directory (dir) | -report (REPORT_FILE) |
-Zgx, --Zgenerate_xml | -report (REPORT_FILE) |
-Zxrd (dir), --Zxml_report_directory (dir) | -report (REPORT_FILE) |
-Zpr, --Zpublish_results | -publish, -publishteamserver |
-Zf, --Zforce | x |
-Zow {on\off}, --Zoverwrite {on\off} | x |
-Zoe [quiet], --Zonly_errors [quiet] | x |
-Zq, --Zquiet | x |
-Zvm(level), --Zverbosity_mode(level) | x |
-Zgrs {on\off}, --Zgrs {on\off} | -localsettings (LOCALSETTINGS_FILE) |
-Zga (name), --Zgrs_attribute (name) | -localsettings (LOCALSETTINGS_FILE) |
-Zcs, --Zcompile_source | x |
-Zrs, --Zreread_symbols | x |
-Zlc (param), --Zlist_config (param) | x |
-Zecf, --Zexpand_command_files | x |
-Znt --Zno_tests | x |
-h, --help | --帮助 |
-V, --版本 | -版本 |
x | -未构建 |
x | -显示详细信息 |
x | -appconsole 标准输出 |