Приспособление с областью действия Pytest, показывающее ошибку в Pylint - PullRequest
1 голос
/ 09 января 2020

Я создал прибор в области сеанса, чтобы мой веб-драйвер соответствовал всем тестам (браузер не будет закрываться между тестами), но по какой-то причине я получаю сообщение об ошибке в каждом тесте, который "self" не делает. У меня нет указанного члена.

Сам код работает, но все эти ошибки затрудняют понимание того, что является настоящей ошибкой, а что нет.

Я использую vscode и по умолчанию python linter.

Кто-нибудь знает, как избежать этих сообщений об ошибках, не теряя возможности самого linter?

Весь код также работает в pipenv.

conftest.py

import pytest

@pytest.fixture(scope="session", autouse=True)
def driver_get(request):
    from selenium import webdriver
    web_driver = webdriver.Chrome()
    session = request.node
    for item in session.items:
        cls = item.getparent(pytest.Class)
        setattr(cls.obj,"driver",web_driver)
    yield
    web_driver.close()

test_file.py

import pytest

class TestLogin:

    def testPageload(self):
        wait = WebDriverWait(self.driver, 3)
        self.driver.get('https://www.website.com')

Ошибка, которая появляется во всех «собственных» ссылках:

Экземпляр TestLogin не имеет pylint элемента «driver» (без элемента)

1 Ответ

0 голосов
/ 11 января 2020

PyLint, вероятно, не понимает всех сумасшедших вещей, которые позволяет делать Pytest, поэтому единственный способ избежать этого - либо выключить предупреждение построчно, либо полностью отключить указанное предупреждение c, либо попробовать другой линтер, который может лучше понять поток кода.

...