Коллеги, подскажите, как вы запускаете тесты для стейджа и продакш версии сайтов через опции(флаги) pytest?

У меня так, настроил через pytest_addoption(parser) несколько нужных мне вызовов, по структуре

@pytest.mark.usefixtures("выбор масива сайтов стейджа или прода ")
class Test_simple:

@pytest.mark.parametrize(“url”, urls )

def test_test_1(self):
browser.open_url(urls)

В вызове первой фикстуры определяю массив сайтов необходимых для тестирования (для RU и ENG страниц сайта). И этот массив мне надо передать в @pytest.mark.parametrize . Как это сделать ? Если есть другие варианты, обязательно выслушаю

Не совсем понял что именно вам нужно. Дополнительный уровень параметризации? Или вручить второй фикстуре результат выполнения первой фикстуры?
А если отвечать на вопрос из шапки, то у меня все сущности (api uri, db, users и тд) распределены по разным конфигам и эти конфиги собирает в себе sh-скрипт, вот такой пример для прода:

#!/bin/bash
# Скрипт запускает API тесты с маркером "monitoring" на продакшене

cd /var/qa_tests/

api_cfg="api_prod.yml"
markers="monitoring"

echo "Config files:"
echo "  $api_cfg"
echo

echo "Markers to tests running: $markers"
echo

pytest --api-cfg=${api_cfg} \
       --send-reports=f \
       --reports-receivers=email1@gmail.com,email2@gmail.com \
       -m "$markers" \
       tests_api/

Если отвечать на вопрос из шапки, то у меня все параметры хранятся в проперти файлах ( конфигах), и в зависимост от енва берется нужный конфиг.

Простите за некорректный вопрос. Мне надо поместить результат фикстуры в аргумент параметризация

Нашел на просторах похожий случай, может вам поможет:

Но задачка интересная, подумаю еще как можно сделать

Спасибо, буду читать, пробовать. Если что-то получится выложу

1 лайк