我最近接管了一個代碼庫,並開始添加Selenium測試並移至py.test。由於並行性和其他第三方包,我喜歡py.test,但是我注意到了py.test的主要問題。Py.test失敗,但./manage.py測試正常工作
代碼庫是一個Django堆棧(Python 2.7中爲1.8,pytest-2.6.4,此刻沒有x-dist)。
1)py.test測試通過執行py.test
運行速度比正常的django測試套件(不是很大慢,但是我可以忍受)
2)當我與Selenium測試運行單元測試一起,一些的單元測試失敗。如果我只用py.test運行單元測試(使用@skipUnless
裝飾器排除),一切正常。當我運行(單元測試&硒)與./manage.py test
所有測試運行也很好。
py.tests失敗(在單元測試和硒運行)與奇怪的錯誤DoesNotExist: ActionType matching query does not exist.
。
py.test運行測試與正常的Django測試套件不同嗎?
任何建議爲什麼unittest與Selenium測試一起運行時失敗?
Selenium測試是在失敗的單元測試之前執行的,但它們碰到代碼的一個非常不同的區域(不同的模塊)。
你如何定義你的測試用例失敗? – sobolevn
我想django和pytest如何收集測試用例的方式不同,所以你的問題可能只是測試用例的順序。檢查它們是否以相同的順序運行,尤其是操作ActionType模型的部分,或者如果它沒有太多的工作嘗試設置明確的測試順序(這是不好的做法,因爲測試用例應該是獨立的,但你可能會發現地方他們不是)。 – beezz