如果单元测试失败,我希望能够进入交互式会话,最好使用 IPython。是否有捷径可寻?
编辑:“交互式会话”是指完整的 Python REPL 而不是 pdb shell。
编辑编辑:作为进一步的解释:我希望能够启动一个交互式会话,该会话可以访问发生测试失败的上下文。例如,测试的self
变量将可用。
如果单元测试失败,我希望能够进入交互式会话,最好使用 IPython。是否有捷径可寻?
编辑:“交互式会话”是指完整的 Python REPL 而不是 pdb shell。
编辑编辑:作为进一步的解释:我希望能够启动一个交互式会话,该会话可以访问发生测试失败的上下文。例如,测试的self
变量将可用。
在 IPython 中,在运行测试之前使用 %pdb
In [9]: %pdb
Automatic pdb calling has been turned ON
Nosetests 运行器提供了--pdb
选项,可让您在错误或失败时进入调试器会话。
你真的确定要这样做吗?你的单元测试应该做一件事,应该有很好的名字,并且应该清楚地打印出失败的地方。如果你做了所有这些,失败消息将指出哪里出了问题;无需以交互方式查看它。事实上,TDD 的一大优势在于它可以帮助您完全避免进入调试器来诊断问题。