4

我想知道是否有人对如何使用诸如 winpdb 之类的调试器调试单元测试或 django 中的任何其他代码有提示?我正在尝试一个

winpdb manage.py test photo

它为我的照片应用程序运行我的单元测试,但 winpdb 崩溃。有替代品吗?做这个的最好方式是什么?

我正在运行linux,ubuntu 10.10。

4

4 回答 4

1

您可以使用pdb来调试您的程序。

import pdb
def some_function():
    pdb.set_trace()
    some_other_computation()

当程序遇到 set_trace 方法时,执行将暂停,您将进入交互式 shell。然后,您可以检查变量,并逐步执行您的代码。

于 2011-04-19T22:56:17.380 回答
1

看看pudb,它是一个全屏、基于控制台的 Python 可视化调试器。非常适合使用良好的控制台 UI 进行调试。

import pudb
def some_function():
    pudb.set_trace()
    some_other_computation()

您需要通过 -s 选项(例如:)python manage.py test -s来关闭输出捕获(这会阻止调试器启动)。

于 2013-08-07T21:39:30.110 回答
0

将以下行添加到您的代码中:

import rpdb2; 
rpdb2.start_embedded_debugger_interactive_password()

您可以在此处找到更多信息:http ://winpdb.org/docs/embedded-debugging/

于 2013-08-07T21:08:10.427 回答
-1

问题是 django 创建了另一个进程来运行被测应用程序。所以你不能只在你的主要 django 进程上使用 winpdb。

您应该在要测试的位置之前调用 rpdb2 调试器(winpdb 内部调试器),并使用 winpdb 附加到该正在运行的调试器。

在此处查看教程:https ://code.djangoproject.com/wiki/DebuggingDjangoWithWinpdb

于 2013-04-19T11:26:52.510 回答