【问题标题】:Inspecting django unittest errors in pdb检查 pdb 中的 django unittest 错误
【发布时间】:2012-04-05 07:01:45
【问题描述】:

我有一个抛出异常的单元测试。我的代码没有抛出异常,它来自 django 深处的某个地方。我想在那个地方打开一个 pdb 会话,看看有什么问题,但是当我用 pdb 和 run test myapp 打开 ipython 时,测试运行,抛出异常,打印它,但 pdb 没有捕获任何东西。

我猜绝望人的解决方案是打开django的源代码并在我想调查的地方插入import pdb; pdb.set_trace()。但一定有更好的方法。我错过了什么?

【问题讨论】:

    标签: django unit-testing django-testing django-unittest


    【解决方案1】:

    也许使用nosetests 来运行你的带有--pdb 选项的测试会起作用。

    【讨论】:

      【解决方案2】:

      为什么不在代码中放置断点 (import pdb; pdb.set_trace()) 并检查进程?我的意思是,你可以用字母 's' 在函数中输入,这样你就可以深入到 Django 代码。

      我不知道你为什么认为使用你所说的断点是一个糟糕的解决方案。实际上,这就是我调试所有代码的方式。

      顺便说一句:尝试使用 ipdb 代替 pdb。你会喜欢的;)

      【讨论】:

      • -1 测试运行者应该提供一个事后调试器(即,它会在发生错误的地方调用 set_trace),因此用户无需在 django 等大型包的内部深处手动执行此操作
      猜你喜欢
      • 2018-06-09
      • 1970-01-01
      • 2011-01-09
      • 1970-01-01
      • 1970-01-01
      • 2021-02-14
      • 2020-01-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多