2010-11-03 108 views
8

我使用PyDev(使用Aptana)來編寫和調試Python Pylons應用程序,並且我想單步調試器中的測試。在PyDev中使用nosetests進行交互式調試

是否可以通過PyDev啓動nosetests並停在斷點?

+0

見這個問題的答案: HTTP://計算器。com/questions/8191146/pydev-nosetests-test-run – superlee 2014-03-22 15:13:29

回答

0

嘗試import pydevd; pydevd.settrace()哪裏想斷點。

2

這是我使用eclipse Pydev來運行nosetests(希望這會對你有幫助)。

首先,我創建一個python腳本,我把它放在我的包的根目錄下:

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

和runtest.py我把:

import nose 
nose.main() 

現在我去在菜單運行 - >運行配置,我創建了一個新的配置Pydev Django我選擇我的軟件包,並把runtest.py在主模塊,接下來我去參數標籤在同一窗口小部件和我把程序參數的路徑,我的項目,不同的ARG傳遞給腳本示例:

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

現在點擊後使用我可以運行這個配置。

爲了調試,你可以在調試模式下運行這個配置,把你的破發點中你的代碼的任何地方,你可以使用了不起調試窗口小部件做幾個動作:步入,看到瓦爾...

NB :對於doctests,我不認爲你可以把斷點放在doctest行,但你可以做的是把你的斷點放在doctest調用的函數的def中,就像你可以使用調試模式一樣。

+0

所以這實際上並沒有將它與單元測試運行器插件集成在一起 - 你不會將結果插入到插件視圖中,對嗎? – 2011-06-21 06:40:11

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中的建議進行修補,其評論無濟於事。因人而異。

在DecoratorTools-1.8-py2.7.egg /峯decorate_assignment()/ UTIL/decorators.py,替換:

oldtrace = [frame.f_trace] 

oldtrace = [sys.gettrace()]