Как повторно запустить только неудачные тестовые примеры и получить единый отчет для пройденных и неудачных скриптов в селене python - PullRequest
0 голосов
/ 05 августа 2020

В моем наборе тестов 25 тестовых сценариев. Когда я выполняю все сценарии, 2 или 3 сценария будут терпеть неудачу каждый раз. Если я просто перезапущу эти неудачные сценарии, он просто пройдет. 2 сценария необходимо выполнить еще раз (2 или 3 раза), прежде чем завершить его как сбой.

Если эти 2 сценария сбоя пройдут через секунду go, тогда мне понадобится отчет html, содержащий все 25 скрипты прошли. Есть ли плагин для достижения этой цели или кто-то столкнулся с этой проблемой и успешно ее реализовал?

Я использую среду pytest и плагин htmlrunner для создания отчета.

Ответы [ 2 ]

0 голосов
/ 13 августа 2020

Я хотел бы сделать на уровне всего модуля. Пожалуйста, дайте мне знать, как добавить reun dectorator в мой набор тестов? Пожалуйста, обновите этот код правильно, чтобы включить повторные запуски.

Это мой файл конфигурации

from pytest import fixture
from selenium import webdriver

@fixture(params=[webdriver.Chrome,webdriver.Firefox,webdriver.Edge])
def browser(request):
    driver=request.param
    drvr=driver()
    drvr.maximize_window()
    yield drvr
    drvr.quit()

Это мой тестовый скрипт

  @mark.parametrize('env', ['test'])
    def test_home(browser, env):

   browser.get(f"https://{env}.abc.com/home")
0 голосов
/ 05 августа 2020

Вы пробовали pytest-rerunfailured ? Его можно использовать для одного конкретного c случая, как для всего модуля или набора тестов.

Для одного конкретного c теста вы можете добавить следующий декоратор:

@pytest.mark.flaky(reruns=5)
def test_example():
    import random
    assert random.choice([True, False])

Для укажите повторный запуск для всего модуля, вы можете добавить:

# test_some.py
pytestmark = [
    pytest.mark.flaky(reruns=5)
]

Если вам нужно указать повторный запуск для всего тестового сеанса:

pytest --reruns 5

...