我想知道是否有人提示如何调试单元测试或django中的任何其他代码,就此而言,使用像winpdb这样的调试器? 我正试图去
winpdb manage.py test photo
为我的照片应用运行我的unittest,但是winpdb崩溃了。还有替代品吗?这样做的最佳方式是什么?
我正在运行linux,ubuntu 10.10。
答案 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