2012-11-23 21 views
2

我正在運行一些測試Django,和一些其他測試的網站使用Selenium。Pytest:停用django插件的一些測試

我選擇的測試框架很棒Pytest

測試的Django我目前安裝pytest-django plugin和Django的測試運行符合預期,但現在我回到我以前不需要Django的插件測試。

我開始測試和Django插件自動拾取。
我查資料,發現the article,其中解釋瞭如何禁用\禁用插件,但是當我運行此命令:

py.test -p no:django 

我得到一個錯誤,我的「DJANGO_SETTINGS_MODULE」是不是在sys.path中。

也像

命令:

py.test --traceconfig 

py.test --version 

扔我同樣的錯誤。 看起來像django插件越來越深了?爲什麼只是在檢查版本或「已安裝的插件」時調用它?

問題:有沒有辦法暫時停用此插件而不卸載它?

回答

3

這應該工作。當我安裝pytest-2.3.4並運行py.test -p no:django --version我沒有得到DJANGO_SETTINGS問題。我得到它時,我離開了-p no:django禁用。 如果不起作用,請鏈接到pastebin上的完整跟蹤。

+0

我之前已經嘗試過......現在注意到我正在嘗試使用'no:dajngo'而不是'no:django'。謝謝Holger。 –

+0

最後使用:'plgns = [tests.myplugin] pytest.main(sys.argv [1:] + ['-p','no:django'],plugins = plgns)' –

0

IIRC這是因爲對事物的組合:

  • 在啓動時py.test將查找入口點setuptool「pytest11」
  • 他們得到激活之前或入口點獲得進口停用
  • pytest- django(現已發佈,目前是1.4)是否有加載的Django先期進口
  • 很多Django需要即使在進口時也配置了設置模塊

不幸的是,這在pytest-django的發佈版本中是不可避免的。原來的答案是:不,在不同的virtualenvs中運行pytest-django和其他測試。

但是這也是我們開始研究插件版本的原因,它可以避免這些問題。我認爲現在最好的版本是pytest23分支https://github.com/flub/pytest_django這個版本功能非常完整,當然與發佈的版本相比,它只是需要更多一點的改進,主要是測試和文檔。

我相信/希望在接下來的幾周內這個分支將被合併和發佈,我只需要讓安德烈亞斯看一看並達成一致。我認爲它足夠穩定,可以開始使用。

+0

哦,剛看到Holger's回覆。看起來步驟2在這種情況下不會發生。 – flub

+0

謝謝你的回答。正如你所建議的那樣,我嘗試了先用django嘗試使用virtualenv,但遇到了安裝MySQLdb的問題。我正在使用Windows,並且始終無法從源代碼創建MSI。所以我只是從二進制安裝它。 –