Как протестировать программу в питоне

Модульное тестирование (или юнит-тестирование) — это способ проверки правильности работы отдельной функции, изолированной от большей кодовой базы. Идея состоит в том, что если все модули (юниты) приложения по отдельности работают правильно, то их интеграция пройдет гораздо проще.

В чем важность модульного тестирования?

Модульное тестирование — это всего лишь одна из форм тестирования. В сочетании с другими формами она помогает устранить ошибки в разрабатываемой части программного обеспечения.

Когда несколько функций и классов объединены и при этом одновременно проявляется несколько багов, зачастую бывает трудно определить источник проблемы. При помощи модульного тестирования мы устраняем как можно большее число багов, относящихся к отдельным модулям, чтобы при соединении этих модулей каждый из них работал максимально корректно. Если после соединения возникнут проблемы, нам будет проще выявить их причину, поскольку она скорее всего будет связана с недостатками совместимости модулей.

Unit тесты в Python. Тестирование кода | Базовый курс. Программирование на Python

Инструменты модульного тестирования

В Python для создания тестов есть много инструментов. Некоторые из них, такие как pytest , заменяют встроенный фреймворк unittest . Другие инструменты, такие как nose , являются расширениями, облегчающими создание тестовых случаев. Имейте в виду, что многие из этих инструментов также используются для интеграционного тестирования: с их помощью создаются тестовые случаи (test cases) для проверки одновременной работы нескольких частей кода.

  • unittest — это встроенный в стандартную библиотеку инструмент для тестирования кода на Python.
  • pytest — инструмент тестирования с упором на обратную совместимость и минимизацию бойлерплейт-кода.
  • nose — это расширение unittest, облегчающее создание и выполнение test cases.
  • Hypothesis — библиотека Python для создания юнит-тестов. Помогает разработчикам создавать тесты с крайними случаями. Лучший способ начать использовать Hypothesis — воспользоваться хорошо написанным «быстрым стартом».
  • mimesis генерирует синтетические тестовые данные, которые можно с пользой применить в ваших тестах.
  • testify — это тестовый фреймворк, предназначавшийся для замены распространенной комбинации unittest+nose. Но команда, занимавшаяся testify, переходит на pytest, так что использовать этот фреймворк для новых проектов не рекомендуется.
Читайте также:
Как уменьшить размер файла программа

Ресурсы по модульному тестированию

Юнит-тесты нужны в любом проекте, независимо от используемого языка программирования. Следующие ресурсы дают хороший обзор модульного тестирования с разных точек зрения.

Источник: pythonist.ru

Unit тесты в Python

Как работать с unittest на языке Python делаем unit тест

Писать Тесты в Python – проще чем Ты думаешь!

В этой статье мы разберём как работать с unittest в Python, думаю всем будет очень полезно и интересно.

Также посмотрите статью: «Простой калькулятор на Python», так как на базе этого калькулятора мы и будем тестировать.

Подготовка проекта:

Для начала нам нужно подготовить проект, вы можете этот пункт пропустить, так как мне нужно подготовить калькулятор.

В начале создаём два файла, «calc.py», в нём мы будем хранить функции для вычислений калькулятора, и «test.py», в нём будет происходить всё тестирование.

Давайте поострим что будет в «calc.py»:

def sum ( a , b ) :
return a + b
def sub ( a , b ) :
return a — b
def mul ( a , b ) :
return a * b
def div ( a , b ) :
return a / b

Как видите у нас тут несколько функций, которые отвечают за складывание, вычитание, умножение и деление соответственно, их и будем тестировать, так же можете добавить их в калькулятор, но это не обязательно для теста.

Как работать с unittest в Python:

Теперь перейдём к самому тестированию, тесты будем писать в «test.py», вот что должно быть в нём:

import unittest
import calc
class Test ( unittest . TestCase ) :
def test_sum ( self ) :
self . assertEqual ( calc . sum ( 4 , 7 ) , 11 )
def test_sub ( self ) :
self . assertEqual ( calc . sub ( 10 , 5 ) , 5 )
def test_mul ( self ) :
self . assertEqual ( calc . mul ( 3 , 7 ) , 21 )
def test_div ( self ) :
self . assertEqual ( calc . div ( 10 , 2 ) , 5 )
if __name__ == ‘__main__’ :
unittest . main ( )

Как видите в самом начале файла мы импортируем библиотеку unittest и наш файл «calc.py» где находиться все функции для работы калькулятора.

Читайте также:
Как пользоваться программой ledshow

Потом создаём класс Test, который унаследуем от класса TestCase, это пожалуй самое важное что нужно делать в в классе для тестирования.

Внутри него создаём несколько методов, которые будут запускаться поочерёдно во время тестирования.

Каждый метод использует метод assertEqual() , который в качестве параметров принимает в себя функцию которую нужно проверить, и значение которая она должна вернуть, если она возвращает другое значение, то при тестирование появится ошибка, таким образом и делаем unit тест в Python.

Последние что мы делаем, это код для запуска программы, внутри условия if __name__ == ‘__main__’ , мы запускаем unittest.

Для запуска тестирования введите команду в консоль:

Источник: prognote.ru

Тестирование кода с Python и pytest

Обычно, написание любой программы предполагает запуск ее и проверку результата. И каждое новое изменение в программе требует новой проверки, а что если изменения очень часты. А ведь сэкономленное на постоянных запусках программы времени может оказаться достаточно для того чтобы написать еще одну полноценную программу.

Тестирование вашего кода дает множество преимуществ. Это увеличивает уверенность в том, что код ведет себя так, как вы ожидаете, и гарантирует, что изменения в вашем коде не вызовут регрессии. Написание и сопровождение тестов — это тяжелая работа, поэтому вы должны использовать все имеющиеся в вашем распоряжении инструменты, чтобы сделать ее как можно более безболезненной.

Pytest — один из лучших инструментов, которые вы можете использовать для повышения производительности тестирования. В данной статье мы рассмотрим: какие преимущества предлагает pytest и каковы его отличия от встроенного модуля тестирования в Python. Для иллюстрации концепции тестирования кода, мы будем использовать достаточно простые примеры, которые вместе с тем позволяют понять суть.

Читайте также:
Программа как просветить одежду

Установка pytest.

Чтобы выполнить некоторые примеры из статьи, нам необходимо установить pytest.Как и большинство пакетов Python, мы можем установить pytest в виртуальной среде из PyPI с помощью pip:

python -m pip install pytest

Как протестировать код?

Напишем простую программу по выполнению некоторого действия и назовем ее program.py.

def func(x):
return x + 1

Для начала выполним тестирование встроенным в Python модулем unittest.

from unittest import TestCase
import program

class TryTesting(TestCase):
def test1(self):
self.assertTrue(program.func(4) == 8)

>>>python -m unittest discover

»’
вывод
Failure
Traceback (most recent call last):
File «unittest.py», line 8, in test2
self.assertTrue(program.func(4) == 8)
AssertionError: False is not true

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru