调试 TAEF 测试
调试器配置
默认情况下,测试用例在单独的进程中执行,而不是TE.exe:TE.ProcessHost.exe。
仅调试 TE.exe (windbg/cdb 的子进程)
如果使用 cdb 或 windbg 等调试器,只需将“-o”开关传递给调试器即可。 这会将调试器配置为自动调试同一调试器实例中的子进程。
例如:
windbg -o te.exe MyTests.dll
然后,若要切换到运行测试的进程,请使用 | (管道) 命令。 用于切换进程的管道命令用作用于切换线程的 ~ (tilda) 命令。
例如:
|1s - sets the current process to the second loaded process.
(Visual Studio/windbg/cdb) 运行“InProc”测试
如果希望使用 Visual Studio 进行调试,上述方法将不起作用。 在这种情况下,只需将调试器配置为运行 TE.exe,在 中为测试用例设置适当的断点,然后将 /inproc 开关传递给 TE.exe。 这将确保所有测试都在TE.exe进程中运行,而不是生成新进程。
例如:
start devenv /debugexe te.exe MyTests.dll /inproc
上述命令将启动 Visual Studio。 接下来,打开测试用例的源代码并设置适当的断点。 最后,按 F5 启动测试用例,如果符号) 正确加载,它应该会在第一个断点 (中断。
上述步骤仅适用于 Visual Studio 中设置的正确符号。 至少,需要将符号设置为要调试的测试 dll。 在 Visual Studio 中设置符号:
- 选择“工具”菜单
- 选择选项...
- 选择左侧树状菜单上的“调试”
- 在“调试”下选择“符号”
- 在符号文件 (*.pdb) 位置:节下输入符号路径
- 保存设置
自动中断调试器 (“breakOnCreate”和“breakOnInvoke”)
为了简化调试过程,Taef 提供了在实例化每个测试类和/或调用每个测试方法之前自动中断调试器的功能。
例如:
cdb -gG te.exe MyTests.dll /inproc /breakOnCreate /breakOnInvoke
上述命令将在 cdb 下启动Te.exe。 Taef 将在实例化每个测试类之前和调用每个测试方法之前中断调试器。
注意: 建议在调试器下运行 Te.exe 时使用此功能,同时指定 /inProc 选项。