Рубрики
Без рубрики

Тестовая разработка с помощью PyTest – Часть 1

Серия из 3 частей о том, как начать работу с pytest и тестовыми практиками разработки.

Автор оригинала: 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 1

Поздравляю с установкой 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 .

pytest 2

Символ F означает, что тестовый случай не удался, то есть тестовый случай называется test_return_sum .

Самое замечательное в PyTest то, что он предоставляет полезные выходные данные о том, как рефакторировать код.

Что в данном случае является ошибкой, просто определив функцию return_sum . Давайте сделаем так, чтобы он прошел, определив функцию return_sum :

def return_sum(a, b):
    return a+b

Теперь снова запустите команду pytest в вашем терминале, чтобы проверить, прошел ли тестовый случай.

pytest 3

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