调试django / unittest?

时间:2011-04-19 22:49:22

标签: python debugging winpdb

我想知道是否有人提示如何调试单元测试或django中的任何其他代码,就此而言,使用像winpdb这样的调试器? 我正试图去

winpdb manage.py test photo

为我的照片应用运行我的unittest,但是winpdb崩溃了。还有替代品吗?这样做的最佳方式是什么?

我正在运行linux,ubuntu 10.10。

4 个答案:

答案 0 :(得分:1)

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

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

当程序点击set_trace方法时,执行将暂停,您将被置于交互式shell中。然后,您可以检查变量,并逐步执行代码。

答案 1 :(得分:1)

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

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

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

答案 2 :(得分:0)

在代码中添加以下行:

import rpdb2; 
rpdb2.start_embedded_debugger_interactive_password()

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

答案 3 :(得分:-1)

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

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

请参阅此处的教程:https://code.djangoproject.com/wiki/DebuggingDjangoWithWinpdb