В процессе обучения мы будем присылать вам программные тесты, чтобы вы могли проверить работу своего кода. Такими тестами будет управлять пакет Pytest. Это инструмент для написания и запуска автоматических тестов, написанных на Python.Этот пакет вы будете устанавливать в виртуальное окружение каждого проекта, который будете сдавать на проверку. Пока срок сдачи домашней работы не горит — самое время потренироваться: установить Pytest в виртуальное окружение и запустить тесты.Откройте проект backend_test_homework
в терминале, активируйте виртуальное окружение и введите команду:
(venv)...Dev/backend_test_homework$ pip install pytest
По этой команде запустится менеджер пакетов pip, он найдёт, скачает и установит программу pytest
на компьютер, в виртуальное окружение проекта. Служебные файлы Pytest будут сохранены в директории Dev/backend_test_homework.
Проверка установки
После завершения процесса проверьте, что Pytest действительно установился: запросите версию установленного пакета:
(venv)...Dev/backend_test_homework$ pytest --version
В терминале вы увидите, какая версия установлена:
This is pytest version ...,
imported from ... (и дальше всякие полезные нерусские слова)
Можно проверить, установлен ли пакет Pytest в виртуальное окружение проекта или в вашу операционную систему (это могло случиться, если вы устанавливали Pytest при неактивированном виртуальном окружении).Отключите виртуальное окружение командой (venv)...$ deactivate
и запустите тесты.
...Dev/backend_test_homework$ pytest
Если вы установили пакет Pytest правильно, именно в виртуальное окружение Dev/backend_test_homework/venv
, то при неактивированном виртуальном окружении тесты не запустятся, и вы увидите сообщение, что модуль Pytest не найден. Всё верно, так и должно быть.
Запуск тестов
Активируйте окружение, запустите Pytest из командной строки, из директории /backend_test_homework (в ней должен находится файл pytest.ini).
(venv)...Dev/backend_test_homework$ pytest
Команда найдёт файл с тестами (они сохранены в test_program.py
) и запустит все тесты из этого файла. Тесты написаны специально для задания backend_test_homework, они проверят наличие файла program.py
и код в нём. В результате работы Pytest выведет в консоль примерно такой текст:
======================================== test session starts =========================================
<разная информация о местоположении файла и т. д. >
collected 0 items / 1 error
=============================================== ERRORS ===============================================
__________________________________ ERROR collecting test_program.py __________________________________
test_program.py:12: in <module>
import program
E File "...../Dev/backend_test_homework/program.py", line 1
E print('Я домашка'
E ^
E SyntaxError: unexpected EOF while parsing
During handling of the above exception, another exception occurred:
test_program.py:14: in <module>
assert False, 'Не удалось запустить `program.py`. Исправьте в нём ошибки.'
E AssertionError: Не удалось запустить `program.py`. Исправьте в нём ошибки.
E assert False
====================================== short test summary info =======================================
ERROR test_program.py - AssertionError: Не удалось запустить `program.py`. Исправьте в нём ошибки.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
========================================== 1 error in 0.14s ==========================================
Pytest нашёл ошибку! Проблема в строке номер 1 файла Dev/backend_test_homework/program.py
. Да, всё правильно: это была проверка, мы преднамеренно допустили ошибку в этом файле. Исправьте её и запустите тесты заново. Когда задание будет выполнено верно, все тесты должны быть «зелёными» (PASSED).
Тесты по-русски
Если вы работаете на Windows через Git Bash — вас может подстерегать неприятная неожиданность: в отчётах об ошибках не будет читаться кириллица.
По умолчанию этот терминал работает только с символами в кодировке ASCII (только латиница и цифры). Кодировку в терминале можно перенастроить: правый клик по шапке терминала → Пункт «Настройки»
В левой колонке выберите пункт «Текст», и в окнах «Формат» и «Набор символов» установите настройки, как на скриншоте. В англоязычном интерфейсе эти окна будут называться «Locale» и «Character Set».
Но удобнее всего будет работать через встроенный терминал в Visual Studio Code. Там не будет никаких проблем с кодировкой, да и работать с кодом и терминалом в одном рабочем пространстве будет гораздо удобнее.