开发者社区 问答 正文

PyTest中是否有直接将命令行参数传递给conftest.py的方法?

我知道有一种方法可以在测试本身中通过args,就像这里显示的那样,但是有没有一种方法可以直接在conftest.py中通过呢?我想以这种方式为所有测试配置一些通用的东西。 这是我的自白。

 import pytest
 from appium import webdriver
 import json
 import os

 from config import *

 CAPS_FILE = "android_9.0_emulator.json"


 def pytest_addoption(parser):
     parser.addoption("--desired-capabilities", action="store", default=CAPS_FILE)


 def pytest_generate_tests(metafunc):
     # This is called for every test. Only get/set command line arguments
     # if the argument is specified in the list of test "fixturenames".
     option_value = metafunc.config.option.name
     if 'desired-capabilities' in metafunc.fixturenames and option_value is not None:
         # metafunc.parametrize("desired_capabilities", [option_value])
         CAPS_FILE = option_value


 def get_desired_caps(json_file):
     with open(desired_caps_dir_path) as json_file:
         return json.load(json_file)


 @pytest.fixture(scope="session")
 def browser():
     driver = webdriver.Remote(appium_driver_url, desired_capabilities=get_desired_caps(CAPS_FILE))
     # driver = webdriver.Remote(appium_driver_url, desired_capabilities=get_desired_caps(metafunc.config.option))
     yield driver
     driver.quit()

更新:或者我应该使用这个函数来初始化/配置contest .py本身从命令行:

def pytest_configure(config):
     option_val = config.option.name
     if 'desired-capabilities' in config.option and option_val is not None:
         CAPS_FILE = option_val

或者可能有更好的方法? 问题来源StackOverflow 地址:/questions/59386296/is-there-a-way-in-pytest-to-pass-command-line-arguments-to-conftest-py-directly

展开
收起
kun坤 2019-12-25 22:04:45 1706 分享 版权
1 条回答
写回答
取消 提交回答
  •  def pytest_addoption(parser):
         desired_caps = None
         parser.addoption("--desired-capabilities", dest=desired_caps, action="store", default=CAPS_FILE)
    
    
     def pytest_configure(config):
         option_val = config.option.desired_capabilities
         if 'desired_capabilities' in config.option and option_val is not None:
             CAPS_FILE = option_val
    

    注意:—desired- capability—> desired_capabilities (dest参数好像坏了,或者我漏掉了什么…)

    2019-12-25 22:04:57
    赞同 展开评论
问答分类:
问答地址: