-v -verbose | – подробный отчёт |
-s | - увидеть текст, который выводится командой print(). |
--tb=line | - указывает, что нужно выводить только одну строку из лога каждого упавшего теста. |
- ChromeDriver - WebDriver for Chromium (downloads)
- ChromeDriver for Windows (x32) 108
- ChromeDriver for Windows (x32) 110
- GeckoDriver (for Mozilla FireFox)
Эта команда сохранит все версии пакетов в специальный файл 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): Тест не должен был пройти, был запущен и прошел!
Все в одном месте по маркировке и пропускам (основное)
После маркировок @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