我想知道是否有人对如何使用诸如 winpdb 之类的调试器调试单元测试或 django 中的任何其他代码有提示?我正在尝试一个
winpdb manage.py test photo
它为我的照片应用程序运行我的单元测试,但 winpdb 崩溃。有替代品吗?做这个的最好方式是什么?
我正在运行linux,ubuntu 10.10。
您可以使用pdb来调试您的程序。
import pdb
def some_function():
pdb.set_trace()
some_other_computation()
当程序遇到 set_trace 方法时,执行将暂停,您将进入交互式 shell。然后,您可以检查变量,并逐步执行您的代码。
看看pudb,它是一个全屏、基于控制台的 Python 可视化调试器。非常适合使用良好的控制台 UI 进行调试。
import pudb
def some_function():
pudb.set_trace()
some_other_computation()
您需要通过 -s 选项(例如:)python manage.py test -s
来关闭输出捕获(这会阻止调试器启动)。
将以下行添加到您的代码中:
import rpdb2;
rpdb2.start_embedded_debugger_interactive_password()
您可以在此处找到更多信息:http ://winpdb.org/docs/embedded-debugging/
问题是 django 创建了另一个进程来运行被测应用程序。所以你不能只在你的主要 django 进程上使用 winpdb。
您应该在要测试的位置之前调用 rpdb2 调试器(winpdb 内部调试器),并使用 winpdb 附加到该正在运行的调试器。
在此处查看教程:https ://code.djangoproject.com/wiki/DebuggingDjangoWithWinpdb