2010-07-27 47 views
9

我正在一個項目中,最近切換到py.test單元測試框架。我習慣於從Eclipse調用我的測試,以便我可以使用調試器(例如,放置斷點來分析測試失敗如何發展)。現在不再可能,因爲運行測試的唯一方法是通過命令行黑盒。如何從Python使用py.test?

是否有一些方法可以在Python中使用py.test,這樣就不會被迫退出IDE?測試當然不應該在單獨的過程中運行。

回答

18

我想現在我可以回答我的問題,這是很簡單的:

import py 
py.test.cmdline.main(args) 

然後我就可以運行這個模塊或集成調試啓動它。

args是命令行參數的清單,因此,例如僅運行特定的測試,我可以使用類似:

args_str = "-k test_myfavorite" 
py.test.cmdline.main(args_str.split(" ")) 
1

我還沒有嘗試使用eclipse,但正如在related question中建議的那樣,可以使用--pdb命令行選項和py.test。也許可以這樣配置eclipse。

但是,調用標準import pdb;pdb.set_trace()不會直接調用調試器。首先它會發出一個錯誤,從而激活調試器。這可能會或可能不會使事情有所不同。

+0

謝謝,我知道了'--pdb'開關。我認爲在這種情況下,pdb是由py.test控制和啓動的,它不適用於Eclipse(我希望我的運行Eclipse接管調試)。 – nikow 2010-07-27 13:14:37

1

也許你可以試用一下pycharm它與py.test直接集成(我在工作中使用它)和調試器完美運行。

+0

謝謝,建議。就在最近我有機會使用PyCharm 2.5,我同意它的工作得很好。現在我在PyCharm和Aptana Studio之間分開了。 – nikow 2012-08-31 07:57:34

+0

@nikow:我開始使用aptana ......我討厭它,如果你熟悉pycharm,你也可以去phpstorm,rubymine,intellij ...所有這些IDE都來自jetbrains,並且具有相同的結構,捷徑...所以這肯定是值得的。我使用的是一個eclipse迷,但是知道jetbrains讓我:) 012爲PyCharm + 1的 – 2012-08-31 07:59:27

+0

。我使用PHP的Aptana,但使用PyCharm後,我將逐漸切換到JetBrain的產品 – 2014-01-08 11:22:28

3

本所現pytest支持及文檔中描述的很好here

0

您可以只運行py.test --pdb,如果你只是想一個調試器,不需要IDE