gpt4 book ai didi

python - pytest 我如何添加到元数据

转载 作者:太空宇宙 更新时间:2023-11-04 01:52:33 27 4
gpt4 key购买 nike

当我运行 pytests 时,我喜欢将 browserbrowserVersiondriverversion 等变量添加到元数据中所以它们被 pytest-html 插件获取:

metadata: {'Python': '3.7.4', 'Platform': 'Windows-10-10.0.18362-SP0',\
'Packages': {'pytest': '5.0.1', 'py': '1.8.0', 'pluggy': '0.12.0'}, \
'Plugins': {'base-url': '1.4.1', 'clarity': '0.2.0a1', 'html': '1.22.0', \
'metadata': '1.8.0', 'mock': '1.10.4', 'variables': '1.7.1'}, \
'JAVA_HOME': 'C:\\Program Files\\AdoptOpenJDK\\jdk-8.0.212.03-hotspot\\', 'Base URL': ''}

如何向元数据添加类似 selenium webdriver 的功能:

webdriver:chrome, capabilities:{'acceptInsecureCerts': False,\
'browserName': 'chrome', 'browserVersion': '76.0.3809.100', \
'chrome': {'chromedriverVersion': '76.0.3809.126 (d80a294506b4c9d18015e755cee48f953ddc3f2f-refs/branch-heads/3809@{#1024})}'

我有一个用于 webdriverpytest.fixture 并且 WEBDRIVER 是一个环境变量控制浏览器,但它们不显示在元数据中。

我可以在 conftest.py 中使用这个钩子(Hook)添加静态和 env-vars,但是驱动程序没有初始化,它是在自己的 fixture 中设置的,怎么能我确保此 fixture 在我的 wd fixture (设置全局驱动程序)之后运行。不允许向 conftest.py 中的函数添加固定装置:

@pytest.mark.optionalhook
def pytest_metadata(metadata):
global driver
if driver:
metadata['browserName'] = driver.capabilities['browserName']
metadata['browserVersion'] = driver.capabilities['browserName']
if driver.capabilities.get('chrome'):
metadata['chromedriverVersion'] = driver.capabilities['chrome']['chromedriverVersion']
else:
metadata['drivererror'] = "driver not initialized"

最佳答案

例如,您可以通过 config._metadata 属性访问 fixture 和测试中的元数据字典

@pytest.fixture(scope='session')
def driver():
return webdriver.Chrome()


@pytest.fixture(autouse=True, scope='session')
def store_driver_info(request, driver):
request.config._metadata['browserName'] = driver.capabilities['browserName']


def test_browser_name(request, driver):
assert request.config._metadata['browserName'] == driver.capabilities['browserName']

关于python - pytest 我如何添加到元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57690095/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com