Параметризация нескольких тестов вместе в pytest - PullRequest
0 голосов
/ 17 января 2020

Справочная информация

У меня есть веб-приложение, в котором я пытаюсь создать контрольные примеры для использования сочетания Pytest и селена. Текущая настройка в веб-приложении выглядит следующим образом: есть список мест, из которых мне нужно забрать пакеты. Каждое местоположение - это ссылка, которая ведет к списку пакетов в каждом местоположении, поэтому структура выглядит примерно так:

  • Местоположение 1
    • Пакет 1
    • Пакет 2
    • Пакет ...
    • Пакет n
  • Местоположение 2

    • Пакет 1
    • Пакет 2
    • Пакет ...
    • Пакет n

    ...

  • Местоположение N. ..

Проблема

Теперь я хочу протестировать несколько вещей для каждого местоположения: я хочу видеть, что ссылка на местоположение работает, количество пакетов правильное, идентификаторы пакетов правильные и т. д. c. Как я могу сделать это таким образом, чтобы использовать хороший дизайн тестового примера, но при этом экономить время.

Что я сделал / Где я застрял

Насколько я понимаю, как часть хорошего дизайна теста, нужно тестировать по одной вещи за раз test, так что у меня есть один тест, который проверяет, работает ли ссылка, один тест на правильность подсчета пакетов, другой - на проверку правильности расположения перечисленных пакетов. Теперь проблема в том, что если я использую @ pytest.mark.parametrize, то он будет проходить через каждый тест в отдельности. Например, если я параметризую тест «проверка работоспособности ссылки» и предоставлю ссылки в качестве параметров, он будет затем проходить по каждой из ссылок местоположения, чтобы увидеть, работают ли они, но теперь, если я хочу проверить правильность списков пакетов и предоставив ссылки на местоположение в качестве параметров, мне придется снова просмотреть все ссылки и посмотреть, правильный ли список пакетов, к которому я попадаю, нажав на ссылку расположения В результате я трачу много времени, щелкая эти ссылки хотя бы один раз для каждого теста. Вместо того, чтобы нажимать ссылку несколько раз, было бы эффективнее, если бы я мог запустить тест проверки ссылки, затем список пакетов проверяет затем go назад и продолжает цикл, так что я нажимаю каждую ссылку только один раз, но я не могу найти способ сделать это.

Мой вопрос

Есть ли способ в некотором смысле параметризовать кучу тестов вместе? Например, учитывая параметр, я запускаю более одного теста на нем? Единственное решение, которое у меня есть сейчас, - это go по всем ссылкам и заблаговременный сбор данных, а затем запуск тестов на собранных данных, а не на самом сайте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...