本主题说明如何通过调试器逐步执行 C++test 测试用例,以便在给定测试期间更好地检查代码的内部状态。例如,您可能想调试测试用例,以了解有关 C++test 如何获得意外结果的更多信息,或确定测试用例失败的原因。您无需手动向代码添加断点。C++test 将在您选择执行的每个测试用例的开头自动设置断点。您可以使用编译器的调试器执行测试,也可以直接在 Eclipse IDE 中进行调试(根据已配置的 Eclipse 调试配置)。
内容包括:
Table of Contents | ||
---|---|---|
|
关于对测试用例调试的支持
C++test 支持使用以下两种模式调试测试用例:
- Eclipse 或 Visual Studio 内部调试器
- 外部调试器
您的开发环境决定了应该选择哪种测试案例调试模式。如果使用 Visual Studio IDE,则应该能够选择 Visual Studio 内部调试器(有关详细信息,请参阅 Visual Studio 文档的 C++test 插件)。如果您的开发环境支持直接在 Eclipse IDE 中进行调试,那么您应该能够在测试配置中选择 Eclipse 内部调试器模式。如果您的开发环境不支持在 Eclipse 中进行调试,则仍然可以配置外部调试器以进行测试用例调试。
对于本机开发,C++test 支持:
- 带有 gdb 调试器和 ddd 调试器的 GNU GCC 编译器
- 具有 gdx 调试器的 Sun CC 编译器
- 可以通过命令行界面启动和配置的其他调试器(请参见配置调试器设置)
- Eclipse 内部调试器(CDT)
- Visual Studio 内部调试器
对于嵌入式开发,C++test 支持:
- Texas Instruments Code Composer Studio (版本 5.x)
- QNX Momentics IDE (SDP 6.4 & 6.5)
- MDK-ARM(版本从 4.12 开始)
- Lauterbach Trace32 调试器(从 2013 年 2 月版本开始)
- 用于 Eclipse 的 Spansion SOFTUNE(FR)开发工具(V01L02)
配置调试器设置
Anchor | ||||
---|---|---|---|---|
|
可以为两种不同的测试用例调试模式配置 C++test:
- 在 IDE 中进行内部调试(Eclipse/VisualStudio)
- 使用外部调试器进行调试
在 Eclipse IDE 中启用调试
- 用于运行测试用例的开放测试配置
- 选择 执行> 运行 标签
- 在【测试用例调试】部分中,启用 在 debugger(*)中运行测试 选项。
- 确保选中将Eclipse内部调试器与配置一起使用 选项,然后从下拉菜单中选择【Eclipse 调试配置】。
在这种模式下,C++test 将使用选定的 Eclipse Debug 配置来自动化测试可执行的执行,并在 IDE 内部进入调试模式。更多详细信息请参见Debugging in Eclipse Internal Debugger Mode。
要使用外部调试器启用调试:
- 用于运行测试用例的开放测试配置
- 选择 执行> 运行标签
- 在【测试用例调试】部分中,启用 在 debugger(*)中运行测试 选项。
启用 使用外部调试器 选项。
在这种模式下,根据开发环境,可能需要一些其他配置。 有关其他详细信息,请参见使用外部调试器进行调试,模式。
在 Eclipse 内部调试器模式下进行调试
Anchor | ||||
---|---|---|---|---|
|
准备 Eclipse 调试配置
您可以将任何现有的 Eclipse 调试配置用于测试用例调试。如果您没有有效的Eclipse 调试配置,则需要首先准备一个配置。有关配置 Eclipse 调试配置的详细信息,请参考您的开发环境文档。
建议先验证您的Eclipse 调试配置可用于调试原始项目代码,然后再在 C++test 测试配置中指定它。
Tip |
---|
使用"Standard Create Process Launcher" (标准 CDT /本机开发) |
使用选定的【 Eclipse 调试配置】
- 用于运行测试用例的开放测试配置
- 选择 执行> 运行 标签
- 确保选中将 Eclipse 内部调试器与配置一起使用 选项,然后从下拉菜单中选择【Eclipse 调试配置】。您可能需要单击刷新来重新加载现有 Eclipse 调试配置的名称。
使用外部调试器进行调试
Anchor | ||||
---|---|---|---|---|
|
用于本机开发的测试用例调试
- GCC 编译器的默认调试器是 gdb。
- Sun CC 编译器的默认调试器是 dbx。
- 还支持 xxgdb 和 ddd 调试器。
启动默认调试器时,C++test 使用以下命令行:
- GNU GCC/Windows:
cmd.exe /C gdb -x %s
- GNU GCC/Linux:
LC_ALL=C /usr/X11R6/bin/xterm -e gdb -x %s &
更改调试器或调试器命令行
- 右键单击项目的项目树节点,然后从快捷菜单中选择属性 。将打开【属性】对话框。
- 选择 Parasoft> C++test> 其他设置 类别。
- 在【高级选项】表中,单击 添加 以将新条目添加到表中
- 使用以下格式将首选命令行添加到【选项】单元格:
testrunner.debuggerCommandLine <COMMAND_LINE
>。
示例:
- 用
testrunner.debuggerCommandLine /usr/X11R6/bin/xterm -e xxgdb -x %s &
来调用 xxgdb 调试器。 - 用
strunner.debuggerCommandLine ddd -x %s &
调用 ddd 调试器。
嵌入式开发的测试用例调试
C++test 对嵌入式开发环境中的调试测试的支持基于环境的特定功能。有关更多详细信息,请参见 调试测试用例。
用调试器执行测试
Anchor | ||||
---|---|---|---|---|
|
此部分包括在本地开发环境的调试测试有关嵌入式环境中调试测试的信息,请参见 调试测试用例。
用执行一个测试您的编译器的调试器:
- 准备一个【调试单元测试】测试配置。
- 使用内置的“调试单元测试”测试配置,或者通过复制内置配置并按照所述对其进行自定义,来开发自定义测试配置Configuring Test Configurations and Rules for Policies。
- 按照如下运行您首选的【调试单元测试】测试配置:
- 使用下列方法之一选择您想要调试的测试用例:
- 从【测试用例浏览器】选择测试用例。
选择代码编辑器中的测试用例函数名称。
在项目浏览器中选择测试用例函数(不适用于 CDT 4.x+ 托管 C/C++项目)。
启动您首选的【调试单元测试】测试配置。例如,右键单击所选内容,然后使用 Parasoft 快捷菜单运行首选的测试配置。然后,C++test 将启动适当的调试器,并在每个选定的测试用例函数的开头自动设置断点。
- 使用下列方法之一选择您想要调试的测试用例:
使用标准的调试器功能逐步完成测试用例。
Note icon false 在将调试器与 C++test 结合使用之前,请确保调试器可执行文件包含在 $PATH 环境变量中。
- 仅当在选定的一个或多个测试用例上运行调试测试配置时,才会激活调试器。否则,以下警告将出现在控制台输出中,并且将继续执行而不进行调试:
警告:调试器将不会激活-未找到有效的断点。
选择(测试用例)函数定义以设置断点。
Tip title 使用【 Standard Create Process Launcher】
对于调试配置,我们建议使用【Standard Create Process Launcher 】(通过 Windows> 首选项> 运行/调试> 默认 启动器进行修改) ,因为这允许您选择调试器。默认的 Eclipse 启动器(GDB DSF) Create Process Launcher 确实允许您选择调试器。