2017-01-26 15 views
0

Я подумываю о переходе с нашего текущего тестирования рамки носа w/nose-testconfig на py.test. Любое предложение, как перезаписать следующий код специально установки/демонтажа ниже с использованием pytest светильниковSelenium swtiching от носа до pytest

class BaseTestCase(unittest.TestCase, Navigation): 
@classmethod 
def setUpClass(cls): 
    browser = Browser.getDriver((config['browser']).lower()) 

    cls.driver = EventFiringWebDriver(browser, MyListener()) 
    cls.driver.implicitly_wait(10) 
    cls.driver.maximize_window() 

    try: 
     cls.driver.get(config['url']) 
    except KeyError: 
     cls.driver.get(DEV_ENV_URL) 

def run(self, result=None): 
    super(BaseTestCase, self).run(MyTestResult(result, self)) 


@classmethod 
def tearDownClass(cls): 
    cls.driver.quit() 

Я хотел бы иметь возможность передавать аргументы командной строки, то есть URL-адрес, браузер, отладки и т.д.

ответ

1

Прежде всего , проверьте документацию py.test.

Во-вторых, есть несколько вещей, которые вы должны сделать, если вы хотите использовать светильники и не setUp/tearDown: Создать новый файл conftest.py где вы проверяете случаи. Если вы поместите его где-нибудь в другом месте, py.test не найдет его.

def pytest_addoption(parser): 
    parser.addoption("--browser", action="store", default="chrome", help="Type in browser type") 
    parser.addoption("--url", action="store", default=DEV_ENV_URL, help="url") 

@pytest.fixture(scope='class', autouse=True) 
def driver(request): 
    browser_name = request.config.getoption("--browser") 
    url = request.config.getoption("--url")  
    driver = Browser(browser_name).getDriver() # 
    driver.get(url) 
    yield driver # Write your setUp before 'yield' 
    driver.quit() # Write tearDown after 'yield' 

Это сделает все ваши испытания, используя этот прибор. Но есть еще одна проблема, я вижу, что ваши тесты наследуют от этого BaseTestCase, поэтому, если вы не соблюдали соглашение об именах, которое поддерживает py.test, он не найдет ваших тестов (прочитайте документы на этом).

Существует гораздо больше, чем пытать. Как я уже сказал все в документах.