本主题说明如何通过调试器逐步调试 C++test 测试用例,以便在测试期间更好地检查代码的内部状态。例如,您可能会想要调试测试用例,以了解有关 C++test 为何获取到意外结果的更多信息,或确定测试用例失败的原因。您无需手动在代码中添加断点。C++test 将在您选择执行的每个测试用例的开头自动设置断点。您可以使用编译器的调试器执行测试,也可以直接在 Eclipse IDE 中进行调试(根据已配置的 Eclipse 调试配置)。
章节目录:
关于对测试用例调试的支持
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 月发布的版本开始)
- Spansion SOFTUNE (FR) Development Tools for Eclipse(V01L02)
配置调试器设置
C++test 可以配置为两种不同的测试用例调试模式:
- 在 IDE 中进行内部调试(Eclipse/VisualStudio)
- 使用外部调试器进行调试
在 Eclipse IDE 中启用调试
- 打开用于运行测试用例的测试配置
- 选择执行> 运行时选项卡
- 在测试用例调试部分中,启用在调试器 (*) 中运行测试选项。
- 确保选中使用带有如下配置的 Eclipse 内部调试器选项,然后从下拉菜单中选择 Eclipse 调试配置。
在此模式下,C++test 将使用选定的 Eclipse 调试配置来自动执行测试可执行文件,并在 IDE 内进入调试模式。详细信息请参阅在 Eclipse 内部调试器模式下进行调试。
使用外部调试器启用调试:
- 打开用于运行测试用例的测试配置
- 选择执行> 运行时选项卡
- 在测试用例调试部分中,启用在调试器 (*) 中运行测试选项。
启用使用外部调试器选项。
在这种模式下,根据开发环境,可能需要一些其他配置。更多详细信息,请参阅使用外部调试器进行调试模式。
在 Eclipse 内部调试器模式下进行调试
准备 Eclipse 调试配置
您可以将任何现有的 Eclipse 调试配置用于测试用例调试。如果您没有有效的 Eclipse 调试配置,则需要先准备一个配置。有关配置 Eclipse 调试配置的详细信息,请参考您的开发环境文档。
建议先验证您的Eclipse 调试配置可用于调试原始项目代码,然后再到 C++test 测试配置中指定。
使用“Standard Create Process Launcher”(标准 CDT /本地开发)
对于调试配置,建议您使用 Standard Create Process Launcher,因为这样可以选择调试器。默认的 Eclipse 启动程序(GDB DSF)Create Process Launcher 允许选择调试器。选择窗口> 首选项> 运行/调试> 缺省启动程序以设置 Standard Create Process Launcher。
使用选择的 Eclipse 调试配置
- 打开用于运行测试用例的测试配置
- 选择执行> 运行时选项卡
- 确保选中使用带有如下配置的 Eclipse 内部调试器选项,然后从下拉菜单中选择 Eclipse 调试配置。您可能需要点击刷新来重新加载现有 Eclipse 调试配置的名称列表。
使用外部调试器进行调试
用于本地开发的测试用例调试
- 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 对嵌入式开发环境中测试调试的支持基于该环境的特定功能。更多详细信息,请参阅调试测试用例。
使用调试器执行测试
此部分涵盖在本地开发环境中调试测试的信息。有关在嵌入式环境中调试测试的信息,请参阅调试测试用例。
使用编译器的调试器执行测试:
- 准备一个调试单元测试测试配置。
- 使用 Debug Unit Tests 内建测试配置,或者复制该内建配置并按照配置测试配置和策略规则中所述进行自定义。
- 按以下步骤运行您的首选调试单元测试测试配置:
- 使用下列方法之一选择您想要调试的测试用例:
- 从测试用例浏览器选择测试用例。
选择代码编辑器中的测试用例函数名称。
在项目资源管理器中选择测试用例函数(不适用于 CDT 4.x+ Managed C/C++项目)。
启动您的首选调试单元测试测试配置。例如,右键点击所选内容,然后使用 Parasoft 快捷菜单运行首选测试配置。然后,C++test 将启动适当的调试器,并在每个选定的测试用例函数的开头自动设置断点。
- 使用下列方法之一选择您想要调试的测试用例:
使用标准的调试器功能逐步调试测试用例。
使用 Standard Create Process Launcher
对于调试配置,建议您使用 Standard Create Process Launcher(通过窗口> 首选项> 运行/调试> 默认启动程序进行修改),因为这样可以选择调试器。默认的 Eclipse 启动程序(GDB DSF)Create Process Launcher 允许选择调试器。