【问题标题】:Interactive debugging with nosetests in PyDev在 PyDev 中使用鼻子测试进行交互式调试
【发布时间】:2010-11-03 13:38:44
【问题描述】:

我正在使用 PyDev(与 Aptana 一起)编写和调试 Python Pylons 应用程序,我想在调试器中逐步完成测试。

是否可以通过 PyDev 启动鼻子测试并在断点处停止?

【问题讨论】:

标签: python debugging pylons pydev nose


【解决方案1】:

这是我使用 eclipse Pydev 运行鼻子测试的方法(希望对您有所帮助)。

首先我创建了一个 python 脚本并将它放在我的包目录的根目录中:

--Package
    |
    | -- runtest.py
    |
    | -- ... (others modules) 

在runtest.py中我放了:

import nose
nose.main()

现在我进入菜单 Run -> Run configurations 并创建 Pydev Django 的新配置,然后选择我的包并将 runtest.py 放入 ma​​in Module ,接下来我转到同一小部件​​中的 arguments 选项卡,然后将 Program arguments 放入我的项目的路径和不同的 arg 以传递给脚本示例:

/home/me/projects/src --with-doctest  # Run doctests too

现在点击应用后我可以运行这个配置了。

对于调试,您可以在调试模式下运行此配置并将断点放在代码中的任何位置,您可以使用出色的调试小部件执行多项操作:步入,查看变量 ...

NB :对于 doctests 遗憾的是,我认为您不能将断点放在 doctest 的行中,但您可以做的是将断点放在 doctest 调用的函数的 def 中,这样您就可以使用调试模式。

【讨论】:

  • 所以这实际上并没有将它与 unittest runner 插件集成 - 你不会将结果放入插件视图中,对吧?
【解决方案2】:

试试import pydevd; pydevd.settrace()哪里想断点。

【讨论】:

    【解决方案3】:

    我得到了这个工作,有点 - 也就是说,我没有断点和单步工作,但我确实让 PyDev 运行测试并在 PyUnit 视图中显示结果。

    运行单元测试时,您必须覆盖测试运行器以在运行配置的参数选项卡中使用“nose”和命令行参数“--with-pylons=path/to/test.ini” .例如,我将其设置为“--with-pylons=../../test.ini”。不幸的是,我必须为我运行的每个测试单独设置它,我还没有找到将变量或项目路径放入其中的方法。

    另外,不幸的是,我无法让断点工作。我尝试按照http://pydev.blogspot.ca/2007/06/why-cant-pydev-debugger-work-with.html 及其 cmets 中的建议进行修补,但无济于事。 YMMV。

    在 decorate_assignment() 中的 DecoratorTools-1.8-py2.7.egg/peak/util/decorators.py 中,替换:

    oldtrace = [frame.f_trace]
    

    oldtrace = [sys.gettrace()]
    

    【讨论】:

      猜你喜欢
      • 2016-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-02
      • 2013-10-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多