Рейтинг  

Яндекс.Метрика
Яндекс цитирования
 

   

Статистика  

Пользователи
7
Материалы
576
Кол-во просмотров материалов
2732977
   

-v -verbose – подробный отчёт

-s - увидеть текст, который выводится командой print().

--tb=line - указывает, что нужно выводить только одну строку из лога каждого упавшего теста.



Эта команда сохранит все версии пакетов в специальный файл requirements.txt.

pip freeze > requirements.txt

Установить пакеты из файла requirements.txt. (Удобно в новом окружении все пакеты установить одной командой! )

pip install -r requirements.txt

# найти все тесты в директории scripts/selenium_scripts
pytest scripts/selenium_scripts

# найти и выполнить все тесты в файле
pytest test_user_interface.py

# найти тест с именем test_register_new_user_parametrized
# в указанном файле в указанной директории и выполнить
pytest scripts/drafts.py::test_register_new_user_parametrized

-v -verbose – подробный отчёт

pytest –v test_abs.py

Другие полезные команды для манипуляции выводом тестов PyTest можно найти по ссылке: Useful py.test commands. ( https://gist.github.com/amatellanes/12136508b816469678c2)

указать параметр -s, чтобы увидеть текст, который выводится командой print().

pytest -s test_fixture1.py
pytest -s -v test_fixture2.py
pytest -s -v -m smoke test_fixture8.py
pytest -s -v -m "not smoke" test_fixture8.py
pytest -s -v -m "smoke or regression" test_fixture8.py
pytest -s -v -m "smoke and win10" test_fixture81.py

smoke - метка критичных тестов, которые нужно запускать на каждый коммит разработчиков
regression – метка регрессионных тестов, которые запускаются только перед релизом

@pytest.mark.skip - метка, которой отмечают в коде, чтобы пропустить тест
@pytest.mark.xfail
@pytest.mark.xfail(reason="fixing this bug right now")

pytest -rx -v test_fixture10a.py -->> -rx – для xfail+reason

pytest -rX -v test_fixture10b.py -->> X в параметре -r, чтобы получить подробную информацию по XPASS-тестам

  • сondition - (условие) - условие при котором тестовая функция помечается как xfail (не работающая) , принимает либо булево значение либо строку, при булевом значении, нужно будет указать дополнительный параметр reason(причина)
  • reason - (причина) - причина по которой функция помечена как xfail, принимается строка
  • raises - (выбрасывания исключений) подкласс исключений которые ожидаются при вызове теста, другие исключения завалят тест
  • run - (запуск) - параметр отвечающий за запуск теста, при значении False будет всегда xfail и не будет запускаться. принимается булевы значения
  • strict - (строгость) значение False по умолчанию, в выводе терминала будет xfailed, если функция провалила тест и xpass, если прошла. при значении True в выводе терминала будет xfailed, если функция не прошла тест, но если фунцкция неожиданно прошла тест то будет fail

https://pytest-docs-ru.readthedocs.io/ru/latest/skipping.html

  • xfail (x): Тест не должен был пройти, был запущен и провалился.
  • XPASS (X): Тест не должен был пройти, был запущен и прошел!
Вроде разные понятия, но один параметр xfail с False это запретит


Все в одном месте по маркировке и пропускам (основное)

После маркировок @pytest.mark..., через двоеточие указывается команда для запуска скрипта.

Маркировка тестов и пропуск тестов

# Запустится только smoke:
@pytest.mark.smoke : pytest -s -v -m smoke test_fixture.py

# Запуска всех тестов, не отмеченных как smoke:
@pytest.mark.smoke : pytest -s -v -m "not smoke" test_fixture.py

# Запуск тестов с разными маркировками:
@pytest.mark.smoke
@pytest.mark.regression : pytest -s -v -m "smoke or regression" test_fixture.py

# Запуск тестов имеющих несколько маркировок:
@pytest.mark.smoke
@pytest.mark.win10 : pytest -s -v -m "smoke and win10" test_fixture.py

# Пропуск тестов:
@pytest.mark.skip : pytest -s -v  test_fixture.py

# Помечать тест как ожидаемо падающий (пометка: XFAIL):
# упавший тест теперь отмечен как xfail, но результат прогона тестов помечен как успешный
# Когда баг починят, мы это узнаем, так как тест будет отмечен как XPASS
@pytest.mark.xfail : pytest -rx -v test_fixture.py

# reason - Чтобы увидеть это сообщение в консоли, при запуске нужно добавлять параметр pytest -rX
@pytest.mark.xfail(reason="fixing this bug right now") : pytest -rX -v test_fixture.py

# Параметр strict
# Ни XFAIL, ни XPASS по умолчанию не приводят к падению всего набора тестов.
# Но это можно изменить, установив параметру strict значение True:
# В этом случае, если тест будет неожиданно пройден (XPASS),
# то это приведет к падению всего тестового набора
@pytest.mark.xfail(strict=True) : pytest -rX -v test_fixture.py


Область видимости scope

Для фикстур можно задавать область покрытия фикстур. Допустимые значения: “function”, “class”, “module”, “session”.

Запускать тесты, указывая при запуске параметр browser_name, такой командой:

pytest -s -v --browser_name=firefox test_cmd.py


"--reruns n", где n — это количество перезапусков
параметр "--tb=line", чтобы сократить лог с результатами теста
--tb=line - указывает, что нужно выводить только одну строку из лога каждого упавшего теста.

pytest -v --tb=line --reruns 1 --browser_name=chrome test_rerun.py


   
   

Login Form