8

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

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

4

3 回答 3

2

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

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

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

在 runtest.py 我放:

import nose
nose.main()

现在我进入菜单运行 - >运行配置并创建Pydev Django的新配置我选择我的包并将runtest.py放在主模块中,接下来我转到同一小部件​​中的参数选项卡并放入程序参数我的项目的路径和不同的参数传递给脚本示例:

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

现在单击应用后,我可以运行此配置。

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

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

于 2010-11-03T14:49:15.660 回答
0

尝试import pydevd; pydevd.settrace()在哪里设置断点。

于 2010-11-03T13:59:28.797 回答
0

我得到了这个工作,有点 - 也就是说,我没有断点和步进工作,但我确实让 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及其评论中的建议进行修补,但无济于事。YMMV。

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

oldtrace = [frame.f_trace]

oldtrace = [sys.gettrace()]
于 2013-06-14T21:55:10.777 回答