我使用dev服务器在mac上开发我的django应用程序。当我运行 manage.py test 时,我可以使用pdb中断执行(因为我也可以在运行该站点时)。
当我将应用程序推送到运行apache2 / nginx pdb的linux生产服务器(Ubuntu)时,它不再适用于该站点。它抛出了BdbQuit异常。我认为当我运行 manage.py test 时它会工作,但很惊讶地发现测试只是跳过pdb.set_trace()调用而没有停止它们。
这似乎意味着 manage.py test 正在通过网络服务器运行,但这似乎违反直觉,因为我的测试代码是没有任何HTTP的纯python。
如果 manage.py test 挂钩到网络服务器有没有办法告诉它使用开发服务器?
我已经尝试过安装ipdb,顺便说一句,它做同样的事情。
答案 0 :(得分:1)
你错误地诊断出了这个问题。说'manage.py测试正在通过网络服务器运行'是没有意义的。您的Django安装甚至不知道存在Web服务器,除非它实际上是通过WSGI由该Web服务器调用的 - 当您通过manage.py
运行测试时显然不是这样。
您确定您的测试运行正常吗?尝试将self.assertTrue(False)
放入调用pdb
的测试中,看看它们是否按预期失败 - 在pdb
之前和之后交替尝试使用断言,看看会发生什么