本主题说明如何通过调试器逐步调试 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 中启用调试 

  1. 打开用于运行测试用例的测试配置
  2. 选择执行> 运行时选项卡
  3. 在测试用例调试部分中,启用在调试器 (*) 中运行测试选项。
  4. 确保选中使用带有如下配置的 Eclipse 内部调试器选项,然后从下拉菜单中选择 Eclipse 调试配置。

在此模式下,C++test 将使用选定的 Eclipse 调试配置来自动执行测试可执行文件,并在 IDE 内进入调试模式。详细信息请参阅在 Eclipse 内部调试器模式下进行调试

使用外部调试器启用调试:

  1. 打开用于运行测试用例的测试配置
  2. 选择执行> 运行时选项卡
  3. 在测试用例调试部分中,启用在调试器 (*) 中运行测试选项。
  4. 启用使用外部调试器选项。

在这种模式下,根据开发环境,可能需要一些其他配置。更多详细信息,请参阅使用外部调试器进行调试模式。 

在 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 调试配置

  1. 打开用于运行测试用例的测试配置
  2. 选择执行> 运行时选项卡
  3. 确保选中使用带有如下配置的 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 &

更改调试器或调试器命令行

  1. 右键点击项目的项目树节点,然后从快捷菜单中选择属性。将打开属性对话框。
  2. 选择 Parasoft> C++test> 其他设置分类。
  3. 在高级选项表中,点击添加以将新条目添加到表中
  4. 使用以下格式将所需命令行添加到选项单元格:
    testrunner.debuggerCommandLine <COMMAND_LINE>。

示例:

  • testrunner.debuggerCommandLine /usr/X11R6/bin/xterm -e xxgdb -x %s & 来调用 xxgdb 调试器。
  • strunner.debuggerCommandLine ddd -x %s & 调用 ddd 调试器。

嵌入式开发的测试用例调试

C++test 对嵌入式开发环境中测试调试的支持基于该环境的特定功能。更多详细信息,请参阅调试测试用例

使用调试器执行测试

此部分涵盖在本地开发环境中调试测试的信息。有关在嵌入式环境中调试测试的信息,请参阅调试测试用例

使用编译器的调试器执行测试:

  1. 准备一个调试单元测试测试配置。
  2. 按以下步骤运行您的首选调试单元测试测试配置:
    1. 使用下列方法之一选择您想要调试的测试用例:
      • 从测试用例浏览器选择测试用例。
      • 选择代码编辑器中的测试用例函数名称。

      • 在项目资源管理器中选择测试用例函数(不适用于 CDT 4.x+ Managed C/C++项目)。

    2. 启动您的首选调试单元测试测试配置。例如,右键点击所选内容,然后使用 Parasoft 快捷菜单运行首选测试配置。然后,C++test 将启动适当的调试器,并在每个选定的测试用例函数的开头自动设置断点。


  3. 使用标准的调试器功能逐步调试测试用例。

    • 在将调试器与 C++test 结合使用之前,请确保调试器可执行文件包含在 $PATH 环境变量中。

    • 仅当在选定的一个或多个测试用例上运行调试测试配置时,才会激活调试器。否则,以下警告将出现在控制台输出中,并且将继续执行而不进行调试:
      Warning: debugger will not be activated - no valid breakpoints found. Select (test case) function definitions to set breakpoints.

    使用 Standard Create Process Launcher


    对于调试配置,建议您使用 Standard Create Process Launcher(通过窗口> 首选项> 运行/调试> 默认启动程序进行修改),因为这样可以选择调试器。默认的 Eclipse 启动程序(GDB DSF)Create Process Launcher 允许选择调试器。

  • No labels