Автор оригинала: Max Ong Zong Bao.
Это будет серия из 3 частей для тех, кто хочет войти в курс дела и интегрировать методы тестирования TDD с помощью Pytest.
Когда я впервые начал изучать TDD, это был один из моих курсов программной инженерии в университете.
Профессор вводил TDD с помощью JUnit , который в то время, как я нахожу, было очень трудно настроить и настроить.
Плюс не вижу смысла в том, чтобы иметь его в качестве практики разработчика. Я просто выбрасываю его как хороший навык, но не обязательно используемый при разработке программного обеспечения.
Это было мое разочарование-отлаживать свой код всякий раз, когда я сталкиваюсь с ошибкой в своем коде, которая приводит меня к TDD.
Мне нужно было бы постоянно понимать, что было не так с кодом, который мог бы занять несколько часов для меня, чтобы искать ошибки в моей программе.
Затем вручную протестируйте его, прежде чем зафиксировать в git , чтобы исправить ошибку в моем коде.
Таким образом, я искал лучший способ облегчить свою отладочную жизнь, включив TDD.
Медленно, но верно я начал узнавать о TDD, читая такие книги, как Clean Code и Test-driven development with Python , Python Testing with PyTest .
Мои знания выросли и еще больше укрепились благодаря работе с другими разработчиками над code kata через тренажерный зал разработчиков JuniorDev SG.
Pytest – это тестовый фреймворк.
Это уменьшает количество шаблонного кода, необходимого для создания тестовых случаев.
По сравнению с платформой тестирования по умолчанию, которая поставляется в комплекте с Python, ее очень легко освоить.
Который назывался Unit test и был разработан на основе Unit testing framework в Java.
Хорошо, прежде чем мы начнем создавать тестовые случаи, нам нужно настроить виртуальную среду и установить pytest , чтобы начать работу.
Настройка Виртуальной Среды
Во-первых, нам нужно установить пакет pip под названием virtualenv
.
Я предполагаю, что вы используете систему на базе Linux или онлайн-облачную IDE с таких сайтов, как REPLY .
Вам рекомендуется продолжить работу, если вы установили virtualenv
и создали виртуальную среду под названием venv
в своем терминале:
pip install virtualenv
Теперь, как только вы установили пакет virtualenv
через pip
. Вам нужно создать папку с именем tutorial
и создать виртуальную среду с именем venv
в вашем терминале:
mkdir tutorial cd tutorial/ virtualenv venv
После того как вы создали виртуальную среду, вам нужно включить вновь созданную виртуальную среду, введя следующую команду для Linux с помощью вашего терминала:
source venv/bin/activate
Установка PyTest
Теперь давайте установим PyTest testing framework в вашей виртуальной среде в папке под названием tutorial
в терминале:
pip install pytest
Отлично, как только вы установили pytest, вы можете ввести следующее, чтобы проверить, работает ли ваш pytest в терминале:
pytest
Вы должны увидеть что-то похожее на это, как только PyTest будет успешно установлен.
Поздравляю с установкой Pytest
в ваш проект. Примите таблетку от простуды и давайте продолжим писать ваш первый тест.
Хорошо, с возвращением!!! Я начну с того, что вы создадите свой первый тестовый случай в pytest.
Но сначала мы должны создать файл с именем test_tutorial.py
:
touch test_tutorial.py
По умолчанию pytest распознает тестовые файлы, когда он начинается с test_something.py
.
Теперь мы создадим тестовый случай с именем test_return_sum
для проверки функции return_sum
:
def test_return_sum(): c = return_sum(1, 4) assert c == 5
Теперь давайте запустим следующую команду в вашем терминале.
pytest
Вы заметите, что выход будет иметь F рядом с test_tutorial.py
.
Символ F
означает, что тестовый случай не удался, то есть тестовый случай называется test_return_sum
.
Самое замечательное в PyTest то, что он предоставляет полезные выходные данные о том, как рефакторировать код.
Что в данном случае является ошибкой, просто определив функцию return_sum
. Давайте сделаем так, чтобы он прошел, определив функцию return_sum
:
def return_sum(a, b): return a+b
Теперь снова запустите команду pytest
в вашем терминале, чтобы проверить, прошел ли тестовый случай.
Вы заметите, что в выходных данных он будет показывать .
вместо предыдущего F
рядом с test_tutorial.py
.
В .
означает, что тестовый случай прошел с тех пор, как вы выполнили требование теста для его прохождения.
Поздравляю вас с тем, что вы впервые написали свой первый тестовый случай в pytest!!!!
Я надеюсь, что эта статья была полезна для того, чтобы вы начали использовать Pytest.
Структура Pytest на самом деле довольно обширна, и мы едва поцарапали ее поверхность.
Я начну детализировать различные способы или приемы использования pytest и включу использование TDD в мои части 2 и 3 этой серии.
Если вам понравилась моя статья, пожалуйста подпишитесь на рассылку Max Adventurer’s Newsletter для потрясающего контента, на который я натыкаюсь еженедельно в Python , Startup и Web Development .
Вы также можете следовать за мной, чтобы получить последнее обновление моей статьи о CodeMentor
Этот пост был первоначально опубликован в блоге Макса по адресу Test Driven Development with PyTest – Part 1: Read Time: 4 Mins and Photo by Hans-Peter Gauster on Unsplash