如何使用xdist运行pytest selenium并使用cli arg驱动程序?

如何使用xdist运行pytest selenium并使用cli arg驱动程序?,selenium,docker,pytest,xdist,pytest-selenium,Selenium,Docker,Pytest,Xdist,Pytest Selenium,我尝试使用xdist并行运行多个测试,并根据用户的命令行参数确定webdriver,例如 --驾驶员遥控器/铬/等 最后,我尝试将其放入docker,以便可以在gitlab管道中使用 这是我试过的 conftest.py @pytest.fixture(scope="session") def setup(request, selenium): # Get cli specified driver driver = selenium driver.get(os.envir

我尝试使用xdist并行运行多个测试,并根据用户的命令行参数确定webdriver,例如 --驾驶员遥控器/铬/等

最后,我尝试将其放入docker,以便可以在gitlab管道中使用

这是我试过的

conftest.py

@pytest.fixture(scope="session")
def setup(request, selenium):
    # Get cli specified driver
    driver = selenium
    driver.get(os.environ.get('server'))

    # Collection
    session = request.node
    for item in session.items:
        cls = item.getparent(pytest.Class)
        setattr(cls.obj, "driver", driver)

    # Teardown when tests finish
    yield driver
    driver.close()
# Collection
        session = request.node
>       for item in session.items:
E       AttributeError: 'Function' object has no attribute 'items'

tests\conftest.py:59: AttributeError

-------------------------------------------------------------------- pytest-selenium --------------------------------------------
Driver log: ...\pytest-426\test_loginValid0\driver.log
URL: *** CENSORED ***
WARNING: Failed to gather log types: Message: unknown command: Cannot call non W3C standard command while in W3C mode
test_login.py

@pytest.mark.usefixtures("setup")
class Test:
    def test_loginValid(self, selenium):
        util.loginEnv(selenium)
这给了我一个错误

========================================================================= ERRORS =========================================================================
_________________________________________________________ ERROR at setup of Test.test_loginValid _________________________________________________________ ScopeMismatch: You tried to access the 'function' scoped fixture 'selenium' with a 'session' scoped request object, involved factories
tests\conftest.py:37:  def setup(request, selenium)
..\appdata\local\programs\python\python37-32\lib\site-packages\pytest_selenium\pytest_selenium.py:205:  def selenium(driver)
如果我试图从安装夹具中删除作用域,我会从conftest.py中得到以下错误

@pytest.fixture(scope="session")
def setup(request, selenium):
    # Get cli specified driver
    driver = selenium
    driver.get(os.environ.get('server'))

    # Collection
    session = request.node
    for item in session.items:
        cls = item.getparent(pytest.Class)
        setattr(cls.obj, "driver", driver)

    # Teardown when tests finish
    yield driver
    driver.close()
# Collection
        session = request.node
>       for item in session.items:
E       AttributeError: 'Function' object has no attribute 'items'

tests\conftest.py:59: AttributeError

-------------------------------------------------------------------- pytest-selenium --------------------------------------------
Driver log: ...\pytest-426\test_loginValid0\driver.log
URL: *** CENSORED ***
WARNING: Failed to gather log types: Message: unknown command: Cannot call non W3C standard command while in W3C mode

在没有xdist集合的情况下,执行此方法以前是有效的。如果可能的话,我如何使其工作?我做错了什么?

请求.节点
->
请求.会话
请求.节点
->
请求.会话