本主题概述 C/C++test 与 QNX Momentics 的集成。
前言
C/C++test 插件通过标准的 Eclipse 插件安装机制与 QNX Momentics IDE 集成;详细信息请参阅将 C/C++test 作为插件安装。
前提条件
许可
您可以使用本地(单机)许可证或 Parasoft DTP 以及 Parasoft 许可证服务器的独立实例提供的网络许可证来运行 C/C++test 插件。有关如何配置许可证的详细信息,请参阅许可。
使用 QNX 项目
要执行静态分析或单元测试,C/C++test 必须从您的 QNX 项目中收集以下信息:
- 源文件的路径
- 编译命令行
- 链接器命令行
通过扫描 make 文件从 QNX Momentics IDE 项目结构描述中收集信息。
扫描 Make 文件
- 选择您的项目并运行 C/C++test 测试配置。
- 构建进程启动,但 make 文件并非使用实际的编译/链接命令行,而是执行带有选项扫描工具前缀的命令行。命令行通常修改方式如下:
- 原始编译命令行:
qcc <options> <file>
- C++test 前缀编译命令行:
options_scanner <options> qcc <options> <file>
- 原始编译命令行:
- 选项扫描器分析命令行并存储编译器/链接器选项供后续复用。
构建过程完成后,C++test 将收集所有必要的数据。
项目配置
在开始测试之前,应确保项目的编译器/链接器选项源设置正确。在大多数情况下,C/C++test 会自动检测必要的设置。编译器/链接器标志源设置在构建设置界面指定。访问构建设置的步骤:
- 右键点击项目资源管理器中的项目节点并从快捷菜单选择属性。
- 展开左窗格中的 Parasoft> C/C++test 分类,然后选择构建设置。
可以设置以下配置选项:
选项源
从下拉菜单中选择收集编译器/链接器选项的策略。
要直接测试 QNX 项目,应选择使用 QNX 构建系统中的选项。C++test 选项提取器旨在扫描 QNX make 文件。扫描编译器/链接器可执行文件名称、编译器/链接器命令行以及用于启动编译/链接进程的系统环境。所有这些设置之后将在 C++test 分析期间使用。
项目设置
- 构建命令行:输入用于启动构建系统的命令行。该系统可以是抽象的,但默认是基于 make 的系统并预设相应的命令。此命令在项目的 Makefile 上执行您的 make,以扫描项目的编译和链接选项。因此,C/C++ 编译器和链接器替换为专用的扫描器(通过 ${CPPTEST_SCAN} 宏表示);-i 和 -B make 选项十分有用。
- 构建工作目录:指定启动 build 命令的目录。
- 依赖文件:指定每次执行测试/构建操作时应检查是否有更改的所有文件。如果发现这些文件中有文件被修改,将重新执行 build 命令。您需要输入作为项目选项源(或影响选项)的所有文件。通常就是您的 Makefile。
- 重置缓存按钮:允许您清除所有扫描选项,并在下一个测试操作时强制重新扫描。
编译器设置
在编译器设置部分,您可以指定用于编译项目源和构建测试可执行文件的编译器集/工具。设置包括:
- 种类:从所有当前注册的编译器种类中选择适当的种类。使用 QNX® GCC 5.x。
点击自动检测,C++test 将根据编译器配置目录中存储的编译器可执行文件和编译器版本正则表达式自动检测编译器种类。由于嵌入式解决方案使用了各种各样的编译器,自动检测可能并不总是能检测到相应的结果。 - C 编译器:指定 C 编译器可执行文件。
- C++ 编译器:指定 C++ 编译器可执行文件。
- 链接器:指定链接器可执行文件。
选项
指定要包含的任何其他编译器或链接器选项,以及运行时库的位置。
- -
DPARASOFT_CPPTEST
默认添加到编译器选项中。之后,您可以添加任何其他选项。 - 您可以添加选项,但不能删除选项(除非您可以使用否定选项覆盖原始选项,例如取消定义符号等)。
${cpptest:original_options}
变量可用于访问原始项目选项。
另请参阅在 C/C++test 项目或文件选项面板中指定选项。
静态分析
开始静态分析前,应确保在项目属性面板的 Parasoft> C/C++test> 构建设置部分使用了正确的编译器设置。在大多数情况下,最好将选项源设置为使用 QNX 构建系统中的选项。确认编译器设置正确后即可开始分析。
运行时测试
单元测试
构建用于测试 QNX 项目的 C/C++test 运行时库
对于嵌入式测试,在执行单元测试之前,必须为所选平台交叉编译 C++test 运行时库。“Run QNX Momentics Tests”内建测试配置会自动完成此构建。
如果您需要手动构建 C++test 运行时库,请按照使用 C/C++test 运行时库中的说明进行操作——使用 QNX_5.mk
作为目标配置。
QNX 单元测试的测试配置
C/C++test 提供了专门为测试 QNX 项目而设计的测试配置模板。此测试配置位于内建> Embedded Systems> QNX> Run QNX Momentics Tests 中。它涵盖了 QNX 项目完整单元测试所需的所有步骤:
- 构建 C++test 运行时库
- 构建测试可执行文件
- 在远程 QNX 系统上执行测试可执行文件
- 收集结果
该测试配置只是一个模板;需要按以下步骤自定义来反映您的远程 QNX 系统配置:
- 选择 Parasoft> 测试配置。
- 打开内建> Embedded Systems> QNX 树节点。
- 右键点击 Run QNX Momentics Tests 并选择复制。
- 选择出现在用户自定义下方复制的测试配置。
- 打开执行选项卡
- 修改测试配置属性以反映您的远程 QNX 系统配置:
- QNX target:目标主机地址
- QNX target test directory:目标主机上将执行测试的目录
- QNX target user name:将用于连接到目标主机的用户名
此测试配置基于 Windows 中可用的 rcp(允许远程复制)和 rsh(允许远程 shell 执行)工具。远程 QNX 系统需要配置为允许通过 rcp 和 rsh 的远程调用。也可以修改测试执行流程并使用不同的工具来代替 rcp 和 rsh。
调试测试用例
使用 Eclipse 内部调试模式。更多详细信息,请参阅:
应用程序监控
QNX 应用程序监控的测试配置
C/C++test 提供了一个测试配置模板,专门用于运行带有内存监控功能的 QNX 应用程序:内建> Embedded Systems> QNX> Build and Run Application with Memory Monitoring for QNX Momentics。此测试配置提供运行 QNX 应用程序监控所需的所有步骤,包括:
- 应用程序构建
- 在远程 QNX 系统上执行应用程序
- 收集结果
该测试配置只是一个模板;需要通过自定义设置来反映您的远程 QNX 系统配置。自定义步骤:
- 选择 Parasoft> 测试配置。
- 展开内建> Embedded Systems> QNX。
- 右键点击 Build and Run Application with Memory Monitoring for QNX Momentics 并从快捷菜单选择复制。
- 选择添加到用户自定义分类的新测试配置。
- 打开执行选项卡
- 修改测试配置属性以反映您的远程 QNX 系统配置:
- QNX target:目标主机地址。
- QNX target test directory:目标主机上将执行应用程序的目录。
- QNX target user name:将用于连接到目标主机的用户名
- QNX target PHOTON environment variable value:对于 GUI 应用程序,您需要指定该值,从而在 phindows 会话中显示您的应用程序 GUI。
此测试配置基于Windows 中可用的 scp(允许远程复制)和 rsh(允许远程外壳执行)工具。远程 QNX 系统需要配置为允许通过 rcp 和 rsh 的远程调用。也可以修改测试执行并使用不同的工具来代替 rcp 和 rsh。