VSC — установка pytest и запуск тестов

В процессе обучения мы будем присылать вам программные тесты, чтобы вы могли проверить работу своего кода. Такими тестами будет управлять пакет 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. Там не будет никаких проблем с кодировкой, да и работать с кодом и терминалом в одном рабочем пространстве будет гораздо удобнее.





Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: