Удаленка для jenkins+selenide+selenoid+allure+docker спецов на 2-3 часа в день. 100% remote! Присоединиться к проекту

Отключить определенные test-suits при запуске тестов

pytest
selenium
python
Теги: #<Tag:0x00007fedb7f14e18> #<Tag:0x00007fedb7f14a58> #<Tag:0x00007fedb7f14828>

(Viacheslav) #1

Есть ли возможность при использовании Pytest + Selenium отключать сразу определенные test-suits или целые пакеты? Не очень удобно у каждого неактуального на данный момент теста прописывать @pytest.mark.skip(reason=" ")
В документации к pytest я что-то не нашел


(Igor Balagurov) #2

Не совсем понятно для чего именно это надо.

Обычно эти группы тестов чем-то обусловлены (скорость выполнения, проверяемая область приложения, приоритет теста и т.д.) Для таких случаев логично выглядит механизм, которые предоставляют @pytest.mark (но ты вроде и сами про них пишешь… если я не правильно понял - уточни).

Можно потратить какое-то время и проставить эти метки (можно не всё сразу, а именно то что нужно в этот раз запустить - так постепенно появятся разные наборы) и потом запускать примерно так:

  1. перед тестами пишем @pytest.mark.smoke или @pytest.mark.login
  2. потом запускаем: pytest -m smoke или pytest -m login и т.д.

на всякий случай ссылка на доки: https://docs.pytest.org/en/latest/example/markers.html#mark-examples


(Viacheslav) #3

Спасибо за ответ.
Постараюсь объяснить, зачем мне это надо. Когда пишу тесты, то я сперва их гоняю на локалке и они отрабатывают отлично, а при запуске на удаленном сервере через дженкинс, некоторые тесты почему-то крэшатся. И поэтому приходится делать рефакторинг и заново запускать, проверять. И чтобы не гонять все тесты, хотелось бы отключать их не по одному, а целыми пакетами или съютами.


(Bolatbek) #4

Наверное локально у вас к примеру винда, а там - линукс?


(Viacheslav) #5

Да нет, и там, и там windows


(Igor Balagurov) #6

Если надо отдебажить - то самое простое запускайте отдельно новый тест удалённо и только потом вливайте в репозиторий.
Как вариант на дженкинсе вынести параметр(марку), которую пробрасывать в вызов pytest - и запускать нужные тесты или благодаря not $mark все кроме каких-то определённых, смотря что хотите


(Viacheslav) #7

Спасибо


(Igor Balagurov) #8

если это то, что нужно - закрывайте тему