2013-10-07 48 views
8

我有一個非常簡單的測試腳本只是爲了學習pytest,tmp.py:pycharm pytestrunner插件管理意想不到的關鍵字參數

def square(x): 
    return x*x 
def test_square(): 
    assert square(4) == 16 

使用Pycharm運行此腳本,我已經配置了我的項目設定,即pytest是用作我的默認測試跑步者。當我運行上面的代碼,我得到了以下錯誤:

/Users/mingxiao/webdav_2.7.5/bin/python /Applications/PyCharm.app/helpers/pycharm/pytestrunner.py -p pytest_teamcity /Users/mingxiao/dev/juggernaut/src/integrations/webDAV/demo/tmp.py "-k test_square" 
Testing started at 4:41 PM ... 
Traceback (most recent call last): 
    File "/Applications/PyCharm.app/helpers/pycharm/pytestrunner.py", line 51, in <module> 
    main() 
    File "/Applications/PyCharm.app/helpers/pycharm/pytestrunner.py", line 20, in main 
    _pluginmanager = PluginManager(load=True) 
TypeError: __init__() got an unexpected keyword argument 'load' 

Process finished with exit code 1 

我正在PyCharm 3.0專業版,pytest 2.4.2和2.7.5蟒蛇。看來它的PyCharm本身就是造成這個問題的原因。

+0

這是PyCharm與結尾沒有* S *。 –

回答

11

它似乎是PyCharm和py.test 2.4.x之間的不兼容。如果你安裝py.test 2.3.5(例如,pip install pytest==2.3.5),它工作正常。我建議向JetBrains提交一個錯誤報告。

+0

如果PyCharms尚未解決問題,請在pytest問題跟蹤器上提出問題。我認爲這是一個簡單的解決方案。 – hpk42

2

PyCharm pytest助手似乎並沒有與新pytest兼容創建。 直到他們修復它,用py.test腳本的內容替換它才能正常工作。

助手位於PyCharm.app/helpers/pycharm/pytestrunner.py(您可以在嘗試運行測試時看到此路徑)。只要把的cat `which py.test`輸出的話,對我來說是:

__requires__ = 'pytest==2.5.1' 
    import sys 
    from pkg_resources import load_entry_point 

    if __name__ == '__main__': 
     sys.exit(
      load_entry_point('pytest==2.5.1', 'console_scripts', 'py.test')() 
    ) 
0

在PyCharm通過添加pytest到您的項目: 設置 - >項目的解釋 - >點擊加綠色圖標 - >搜索「pytests」 - >點擊「安裝包」按鈕

重辦,現在它應該工作

相關問題