进入交互式会话检查失败的单元测试

3 投票
3 回答
1079 浏览
提问于 2025-04-16 02:59

我希望在单元测试失败时能够进入一个交互式会话,最好是用IPython。有没有简单的方法可以做到这一点?

补充说明: 这里说的“交互式会话”是指一个完整的Python REPL,而不是pdb的命令行。

再次补充: 进一步解释一下:我希望能够启动一个交互式会话,并且可以访问测试失败时的上下文。比如说,测试中的self变量应该是可以用的。

3 个回答

-2

你真的确定要这么做吗?你的单元测试应该只做一件事,命名要清晰,并且要明确显示出哪里出错了。如果你做到这些,失败的信息就会直接告诉你问题出在哪里;你不需要去手动查看。实际上,测试驱动开发(TDD)一个很大的好处就是,它能帮助你避免进入调试器去找问题。

1

Nosetests 这个测试工具提供了一个 --pdb 选项,当出现错误或失败时,它会让你进入调试模式。

http://nose.readthedocs.org/en/latest/usage.html

2

在IPython中,在运行测试之前使用 %pdb 命令。

In [9]: %pdb
Automatic pdb calling has been turned ON

撰写回答