🧪PyTest

Согласно официальному сайту

Инфраструктура pytest позволяет легко писать небольшие тесты, но масштабируется для поддержки сложного функционального тестирования приложений и библиотек.

По соглашению pytest будет искать все с расширением test_ в качестве префикса, включая все подкаталоги.

Установка

  1. Запустите pip install pytest на терминале

  2. Убедитесь, что вы установили правильную версию ( pytest –version ) .

pytest позволяет настраивать различные аспекты с помощью conftest.py . Обычно функции настройки и демонтажа поддерживаются с помощью фикстур .

фикстуры pytest предлагают значительные улучшения по сравнению с классическим стилем xUnit функций установки/разборки:

  • фикстуры имеют явные имена и активируются путем объявления их использования из тестовых функций, модулей, классов или целых проектов.

  • фикстуры реализованы модульным образом, так как каждое имя фикстуры запускает функцию фикстуры, которая сама может использовать другие фикстуры.

  • Управление фикстурами масштабируется от простого модуля до сложного функционального тестирования, что позволяет параметризовать фикстуры и тесты в соответствии с параметрами конфигурации и компонентов или повторно использовать фикстуры для функций, классов, модулей или всего сеанса тестирования.

Ниже приведен пример настройки фикстуры в conftest.py.

@pytest.fixture(scope='session')
def setup(request):
    chromedriver = "/usr/local/bin/chromedriver"
    print("\Initiating chrome driver")
    driver = webdriver.Chrome(chromedriver, chrome_options=options)
    session = request.node
    for item in session.items:
        cls = item.getparent(pytest.Class)
        setattr(cls.obj, "driver", driver)
    driver.implicitly_wait(30)
    yield driver
    time.sleep(2)
    driver.close()

Здесь, как могут видеть пользователи, мы использовали фикстуру меток для функции настройки, которая содержит путь к браузеру/драйверу, chromedriver, chrome_options=options — это параметры, которые можно использовать для настройки и настройки сеанса ChromeDriver.

Last updated