【发布时间】:2018-08-06 14:09:26
【问题描述】:
我正在尝试使用 pdb(Python 调试器)调试我的测试,同时使用 bazel 运行它们。
这是我的一个示例测试:
class TestMembersResource(TestCase):
def test_get(self):
response = self.client.get('/api/v1/members/')
import ipdb; ipdb.set_trace()
self.assertEqual(response.status_code)
当我尝试使用 bazel test ... 运行它时,我得到以下输出:
Traceback (most recent call last):
File "/root/.cache/bazel/_bazel_root/ae988d93859d448ae36776fcb135b36c/execroot/__main__/bazel-out/k8-fastbuild/bin/webserver/members/api/tests/test_members_resource.runfiles/__main__/webserver/members/api/tests/test_members_resource.py", line 22, in test_get
self.assertEqual(response.status_code, 200,
File "/root/.cache/bazel/_bazel_root/ae988d93859d448ae36776fcb135b36c/execroot/__main__/bazel-out/k8-fastbuild/bin/webserver/members/api/tests/test_members_resource.runfiles/__main__/webserver/members/api/tests/test_members_resource.py", line 22, in test_get
self.assertEqual(response.status_code, 200,
File "/usr/lib/python2.7/bdb.py", line 49, in trace_dispatch
return self.dispatch_line(frame)
File "/usr/lib/python2.7/bdb.py", line 68, in dispatch_line
if self.quitting: raise BdbQuit
BdbQuit
如果没有 pdb,一切都会非常顺利。
有没有办法获得交互式 shell 并使用标准 pdb 命令和 bazel 测试?
谢谢!
【问题讨论】:
-
检查这个答案,不确定它是否满足您的需求 - stackoverflow.com/a/40352901/742501。
-
感谢您的回答!我已经检查了这个响应,对于我的用例,如果可能的话,我宁愿复制
nosetests -s <test_file>的行为以保持相同的开发流程。如果不可能,这将是要走的路。 -
这能回答你的问题吗? Debugging python tests in TensorFlow