Может ли кто-нибудь помочь мне с приведенным ниже сценарием: я пытаюсь запустить один и тот же тестовый сценарий для разных env, таких как (dev, test, preprod и prod). но я не могу добавить имя env к URL.
conftest.py Код ниже:
import pytest
from selenium import webdriver
driver = None
environment = None
def pytest_addoption(parser):
parser.addoption(
"-B", "--browser_name", action="store", default="chrome"
)
parser.addoption(
"--environment_name", action="store", default="acc"
)
@pytest.fixture(scope="class")
def env(request):
global environment
environment_name = request.config.getoption("environment_name")
if environment_name == "tst":
environment = "tst"
elif environment_name == "acc":
environment = "acc"
elif environment_name == "dev":
environment = "dev"
request.cls.environment = environment
yield
driver.quit()
Мой код базового класса:
import inspect
import pytest
import logging
@pytest.mark.usefixtures("setup")
@pytest.mark.usefixtures("env")
class BaseClass:
def getLogger(self):
loggerName = inspect.stack()[1][3]
logger = logging.getLogger(loggerName)
и мой testfile.py:
import time
from RT.PageObjects.Search_Page importSearch_Page
from utilities.BaseClass import BaseClass
class TestChecking_SearchNoResults(BaseClass):
def test_SearchNoResults(self):
self.driver.get("https://"+environment+".xxxxxx/contact/search")
Я использую тот же способ, чтобы выбрать broswer и запустить py.test --browser_name, чтобы выбрать имя браузера, и это работает. Не уверен, почему это не работает.
Проблемы:
- имя env принимает значение none.
- не может вызвать env в качестве аргумента в командной строке, как в браузере имя 3. не в состоянии добавить мое имя env к моему URL. Пожалуйста, помогите как можно скорее.
Результатом / результатом является передача имени env в качестве аргумента командной строки для URL. Например: py.test --env = 'www'. когда я запускаю команду, указанную выше, она должна добавить www then, добавить www to url и запустить мой тестовый пример.