2016-02-20 20 views
1

我想寫與服務器Selenium測試夾具爲:如何運行服務器作爲夾具py.test

import pytest 

@pytest.fixture() 
def driver(request): 
    from selenium import webdriver 
    d = webdriver.Firefox() 
    request.addfinalizer(d.close) 
    return d 

@pytest.fixture() 
def server(): 
    from server import run 
    run(host="localhost", port=8080) 

def test_can_see_echo(driver,server): 
    page = TestPage(driver) 
    page.fill_text_in_input("test") 
    page.click_send() 
    print page.get_returnet_value() 

功能運行在服務器夾具瓶運行功能。問題在於,當我調用run()程序進入無限循環並且測試主體不執行時。我應該調用同一個線程運行嗎?我的設計很好嗎?在將來,我想使用服務器夾具來整合到服務器狀態。例如,使用Selenium進行測試「添加評論」,並在最後使用服務器夾具來詢問服務器是否真的發生了此操作。

回答

1

測試掛起是因爲您的run(host="localhost", port=8080)啓動了一個永遠等待的服務器。您應該在不同的線程/進程中啓動該服務器。

查看pytest-xprocess這樣的內容,用於運行測試的外部服務器進程。

相關問題