2013-12-23 52 views
3

今天我試着結合django的LiveServerTestCasesplinterphantomjs webdriver。Django與分裂和phantomjs是痛苦緩慢

這裏是我做(簡體版):

class Test(LiveServerTestCase): 

    def setUp(self): 
     self.browser = Browser('phantomjs') 

    def tearDown(self): 
     self.browser.quit() 

    def test(self): 
     self.browser.visit(self.live_server_url) 
     self.assertIn("Hello world!", self.browser.title) 

有時試驗運行良好 - 即使以每個測試方法的第二執行。但有時它可以隨機採取大約100秒的時間來執行單個測試方法,或者它會凍結,直到我沒有耐心等待它完成。

我使用django_nose作爲測試轉輪,並且我通過--liveserver=localhost:8081-8181範圍的端口到./manage.py test命令。

有什麼方法可以加快速度嗎?我還有其他的網絡測試運行速度更快嗎?

默認的網絡驅動程序似乎是更可靠的速度(每個測試方法1-3秒),但它仍然很慢。我也更喜歡無頭瀏覽器進行測試。

回答

6

什麼讓測試變得緩慢是打開並關閉每個測試的瀏覽器。一種改進測試時間的方法是打開瀏覽器一次。你可以使用setUpClass和tearDownClass來完成它。

+0

我沒有測試這個,但它聽起來對我有效。接受答案。 –

+0

這實際上可能不是問題。這個問題詢問測試花費超過100秒的時間來完成。這個問題更可能與LiveTestServer只有一個線程的事實有關,如果它被阻止,則無法繼續。 – mlissner