本主题解释如何复审和自定义项目级别和文件级别的选项,包括构建设置、自定义编译器和链接器选项、报告中心 设置和其它设置。
内容包括:
复审和修改设置
必须配置相应的构建设置,以便 C++test 能正确测试您的代码。另外,需要时可以配置高级设置(检测选项)。
要复审和修改设置:
右键单击 解决方案资源管理器树 (也称为 " 项目的树状图 ")您想要复审和修改设置的项目或文件的节点,然后选择 Parasoft>来自快捷菜单中的属性 。将打开【属性】对话框。
- 展开左窗格中的 Parasoft> C++test 类别。
- 选择代表想要复审和 / 或更改的设置的类别。下面描述类别和可用设置。
- 必须复审构建设置,必要时修改。可以选择复审其它设置。
- 在右边窗格中修改选项。
- 点击 应用,然后点击 确定。
可用设置
构建设置
选项来源: 定义如何设置选项。
如果您使用
cpptestscan
来创建一个构建数据文件,推荐使用来自构建数据文件的选 项。如下描述,如果您希望手动管理再生并更新构建数据文件。- 如果以下情况,建议从构建系统使用选项1)可以从命令行构建项目,但是您没有创建构建数据文件,或者2)如果您创建了构建数据文件,但是希望使用 C++test 进行管理生成/更新构建数据文件。
对于最初在 Visual Studio 中开发的项目,建议使用来自该项目的使用选项。
对于最初在 Visual Studio 中开发的项目,建议使用来自该项目的使用选项。
可用的控件取决于所选的选项源。
注释
如果您决定手动管理构建数据文件,则强烈建议将用于创建构建数据文件的机制集成到构建过程中。这样,开发团队的成员就可以访问和使用您的构建数据文件,并帮助您在常规构建活动中无缝地生成或更新它。
管理多个 C++test 的项目配置
多个 C++test 项目配置可用于管理一系列不同配置的测试。例如,您可以配置一个项目来测试主机编译器、交叉编译器、在 Debug 模式下进行测试、在 Release 模式下进行测试等。
您还可以将当前活动的属性导出到文件,或从文件导入先前保存的属性:
- 在项目浏览器中右键单击您的项目,然后单击属性。
- 选择 Parasoft> C++test 然后单击 导出 或 导入。
- 浏览属性,然后单击保存 或 打开。
导出属性会创建一个文件,该文件也可以用作cpptestcli -localsettings
参数中的参数。从命令行进行测试时,这使您可以轻松地在不同的项目配置之间切换。
使用项目中的选项
要配置适当的设置:
- 在 配置 字段中,选择您想要使用的配置。
- 如果要刷新可用配置的列表,请单击刷新。
- 在编译器设置 区域中,指定编译器可执行文件(用于 C 和 C++ 源代码)、链接器和系列。
- 在 选项 区域中,指定您想要使用的特定于测试/特定于 C++test 的选项编译器或链接器选项,而在 Visual Studio 6 配置中尚未指定。
- 有关详细信息,请参见为 使用 C++test 进行测试指定自定义编译器设置和链接器选项 。
当 Visual C++ 项目文件选项变更时,C++test 将自动重新扫描选项并相应地修改项目。
使用构建数据文件中的选项
要配置适当的设置:
- 在构建数据文件 字段中,输入或浏览到先前创建的构建数据文件的位置 (如 使用 cpptestscan 或 cpptesttrace 创建构建数据文件中所述)。
- 使用绝对路径可能会导致无法移植的项目。我们建议您使用以下 C++test 变量来指定路径:
${resource_loc}
解析到特定项目资源的路径。例如,${resource_loc:/MyProject/linked_src_dir/source.cpp}
会解析到C:\src\source.cpp
。
- 使用绝对路径可能会导致无法移植的项目。我们建议您使用以下 C++test 变量来指定路径:
- 如果您希望 C++test 在每次扫描选项时清除以前的选项信息,请清除保留以前收集的选项(增量构建) 复选框。 否则,每个构建都将被视为增量构建。
- 如果您具有增量构建,则如果希望 C++test 在 C++test 扫描后删除该版本数据文件,请选中处理后删除构建数据文件复选框。这将确保在执行后续构建时,构建数据文件不会无限增长。
- 在编译器设置 区域中,指定编译器可执行文件(用于 C 和 C++ 源代码)、链接器和系列。
- 如果未列出您的编译器,请为其添加一个自定义编译器定义(如使用交叉编译器配置测试中所述)。
- 在 选项 区域中,指定您想要使用的,特定于测试的 C++test 特定选项的编译器或链接器选项,但尚未在 Makefile 中指定。
- 有关详细信息,请参见为 指定自定义编译器设置和链接器选项 。
当指定的构建数据文件中的选项变更时,C++test 将自动重新扫描选项并相应地修改项目。如果要强制 C++test 立即更新选项(例如,如果外部配置文件已变更),请单击重置缓存按钮。
使用来自构建系统中的选项
要配置适当的设置:
- 在构建命令行字段中,查看 C++test 用于运行构建的选项(例如,使用指定的 makefile 执行 make),并从该过程中收集项目构建选项。
- C++test 通过按照构建命令行中的指定将值重新分配给适当的变量来替换编译器。
- C++test 选项扫描器由
${CPPTEST_SCAN}
变量表示。
- 如果您的构建系统使用的编译器/链接器变量与 C++test 所提供的默认变量不同,请根据需要修改构建命令行。
- C++test 将扫描选项的所有文件,这些文件将由选项扫描程序处理。您应该提供适当的命令行来强制对所有源文件执行编译器。否则,某些文件将不会被测试。
这是一个示例 GNU 构建命令行:
make -i -B objects CXX=${CPPTEST_SCAN} CC=${CPPTEST_SCAN}
此命令行将使用带有标志-B
(无条件创建所有目标)和-i
(忽略错误)的目标来构建对象
。CXX
和CC
使变量被${CPPTEST_SCAN}
取代。此命令行将允许 C++test 为通常编译为构建对象
目标的所有源文件提取选项。- 如果您的命令行 shell 以特殊方式处理 $(例如,以 bash 格式),请记住使用 \(反斜杠)来转义 $ 符号; 例如
CXX=\${CPPTEST_SCAN}
- C++test 将支持任何构建过程(使用 nmake、ant 或任意构建脚本)只要它可以通过重新分配适当的变量来替换编译器和链接器即可。向您的构建工程师咨询适当的选项。
关于 -B Switch 的重要说明
构建命令行已预设为包括 -B Switch 选项(无条件地构建所有目标)。仅 GNU Make 3.80+ 支持此选项。
如果您使用的是较早的 make,请在创建项目之前清理构建。保持 -k switch。
如果你正在使用的 make 不支持 -B, 则需要进一步修改命令行。项目属性中使用的默认构建命令行没有任何目标。我们建议您使用用于构建您要分析的代码的目标来修改此命令行,例如:
make -i CXX=\${CPPTEST_SCAN} ... all
(此处 all
是一个目标)。
另外,在正常构建目标之前添加一个整洁的步骤。示例:
使 -i CXX={CPPTEST_SCAN} ... 清除所有
这将首先构建 clean 目标,然后构建all
目标。尽管从 C++test 运行的 make 实际不构建对象文
件,但清除
步骤会实际清除它们。
3。在构建工作目录 字段,指定应在其中执行构建过程的目录。
- 使用绝对路径可能会导致无法移植的项目。我们建议您使用以下 C++test 变量来指定路径:
${Project_loc}
解析为绝对路径 Visual Studio项目位置${Project_loc}
解析为特定项目资源的路径。例如,${resource_loc:/MyProject/linked_src_dir/source.cpp}
将解析为C:\src\source.cpp
。
- 使用绝对路径可能会导致无法移植的项目。我们建议您使用以下 C++test 变量来指定路径:
4。在依赖文件 字段,指定要检查更改的 Makefile (s)。如果指定的文件更改,选项将自动更新。
使用绝对路径可能会导致无法移植的项目。我们建议您使用以下 C++test 变量来指定路径:
${Project_loc}
解析为路径 Visual Studio项目位置${resource_loc}
解析到特定项目资源的路径。例如,${resource_loc:/MyProject/linked_src_dir/source.cpp}
将解析为C:\src\source.cpp
。
5。在编译器设置 区域中,指定编译器可执行文件(用于 C 和 C++ 源代码)、链接器和系列。
如果未列出您的编译器,请为其添加一个自定义编译器定义(如使用交叉编译器配置测试中所述)。
6。在 选项 区域中,指定您想要使用的,特定于测试的 C++test 特定选项的编译器或链接器选项,但尚未在 Makefile 中指定。
- 有关详细信息,请参见为 指定自定义编译器设置和链接器选项 。
当指定的依赖性文件选项更改时,C++test 将自动重新扫描选项,并相应地修改项目。
执行(仅限文件级)
确定在测试用例执行期间是否检测到选定的源文件。
为了应用这个设置到多个文件,请在项目树中选择文件,然后右键该选项并选择Parasoft> C++test> 执行设置。 请注意,当前的设置将会被统一应用到所有选中的文件。
其它设置
允许您指定 C++test 临时文件的位置、以及高级选项。
C++test 临时文件
C++test 临时文件 字段控制 C++test 将临时数据 / 文件保存在何处,例如检测源、编译对象、链接测试可执行文件、以及自动生成的头文件。 此设置控制 {cpptest:testware_loc}
。
由于 C++test 可以在需要时自动重新生成这些文件,因此无需在所有团队成员之间共享它们。因此,这些文件不应保存在项目中或添加到源代码管理中。
单击【清除】按钮可以删除临时数据。我们建议您不要在两次测试运行之间删除临时数据;保存这些数据可以显著提高性能。
为获得优化的性能,请使用本地硬盘驱动器上的位置。
高级选项
此表允许您指定各个低级选项和调试选项;有关可用选项的列表,请参见 高级的仪器配置选项。
源文件编码
当处理源文件时,确定是否多字节编码应该被使用。默认情况下, C++test 基于当前系统的编码自动激 活对多字节字符的支持 ( 自动 模式 )。为了手动地控制多字节支持,设置选项值为On或Off。
请注意,由于启用多字节字符的支持对分析性能可能受到影响。
范围设置
允许您指定不想测试的项目文件。参见 测试用户定义的资源集了解详细信息。