Финишная прямая: готовим код к ревью
Поздравляем, вы уже почти закончили свой финальный проект! В следующем шаге вы отправите его на оценку сокурсникам, а сейчас время немного причесать его и довести до совершенства. Следуйте этим советам, чтобы получить максимальные баллы:
- Убедитесь, что в репозитории есть все нужные файлы. Все файлы, где хранятся страницы, лежат в отдельной папке pages. В итоге структура файлов и папок должна выглядеть так:
Убедитесь, что ничего не потерялось. Обратите внимание обязательно на conftest.py.
- Проверьте requirements.txt и убедитесь что там указаны нужные версии пакетов, как минимум:
pytest==5.1.1 selenium==3.14.0
Желательно, чтобы там еще не было лишнего. Помните, что задание будут проверять ваши сокурсники, и им вряд ли понравится ставить огромную кучу пакетов.
-
Проверьте, что все тесты, описанные в test_main_page.py и test_product_page.py запускаются и проходят (очевидно, за исключением тех, которые помечены как xfail/skip).
-
Проверьте стиль кода. Представьте, что ваш код будет читать человек, который никогда не программировал и не автоматизировал тестирование — ему должно быть понятно, что происходит.
Убедитесь что все переменные, методы и классы, которые вы создаете, называются осмысленно.
Удалите весь ненужный закомментированный код, помним, что захламлять репозиторий лишним — плохой тон.
- Откройте test_product_page.py. Убедитесь, что там есть следующие тесты:
test_user_can_add_product_to_basket
test_guest_can_add_product_to_basket
test_guest_cant_see_product_in_basket_opened_from_product_page
test_guest_can_go_to_login_page_from_product_page
Отмаркируйте эти тесты меткой:
@pytest.mark.need_review
Не забудьте зарегистрировать метку, чтобы избежать предупреждений: Как же регистрировать метки?
Убедитесь, что при запуске с помощью следующей команды тесты запускаются и успешно проходят:
pytest -v --tb=line --language=en -m need_review
-
Убедитесь, что все тесты написаны в стиле PageObject: нет assert в теле тестов, все методы действия и проверки выделены в отдельные методы в классах PageObject, все селекторы лежат в locators.py.
-
Зафиксируйте все изменения коммитом. Не добавляйте локальные файлы окружения, файлы ide и прочие вспомогательные вещи в отслеживаемые. Нужен только код!
-
Сделайте пуш изменений в свой репозиторий.
-
Откройте репозиторий на GitHub и перепроверьте пункты 1, 2, 4, 5 и 6.
-
Порадуйтесь за себя и переходите к следующему шагу.