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

Python тестирование со довержем

Получите практические, реальные навыки Python на наших ресурсах и пути

Автор оригинала: Mike Driscoll.

Python включает в себя несколько модулей для тестирования в своей стандартной библиотеке: доктра и Неизвестный Отказ Мы будем смотреть на доктра в этой статье. Докурный модуль будет искать кусочки текста в вашем коде, который напоминает интерактивные сеансы Python. Затем он будет выполнять эти сеансы, чтобы убедиться, что они работают точно так же, как написано. Это означает, что если вы написали пример в DOCSTRING, который показал вывод с помощью конечного пространства или вкладки, то фактический выход функции должен также иметь этот трейлинг пробелы. Большую часть времени DOCSTRING – это то, где вы захотите поставить тесты. Следующие аспекты дочисли будут покрыты:

  • Как запустить докуда от терминала
  • Как использовать докуда внутри модуля
  • Как запустить докуда из отдельного файла

Давайте начнем!

Запуск доктора через терминал

Мы начнем с создания действительно простой функции, которая будет удвоить все, что ему дано. Мы включим пару тестов внутри DocString функции. Вот код:

Теперь нам просто нужно запустить этот код в доктра Отказ Откройте терминал (или командную строку) и измените каталоги в папку, содержащую ваш скрипт. Я спас мою копию как dtest1.py Отказ Вот скриншот того, что я сделал:

Вы заметите, что в первую очередь я выполнил следующее:

Это провела тест и ничего не напечатано на экран. Когда вы не видите напечатанные, это означает, что все испытания прошли успешно. Второй пример показывает следующую команду:

«-V» означает, что мы хотим многолетний вывод, который именно то, что мы получили. Откройте код еще раз и добавьте пространство после «18» в DOCSTRING. Затем повторно запустите тест. Вот вывод, который я получил:

Сообщение об ошибке говорит, что ожидалось, что «18», и он получил «18». Что тут происходит? Ну, мы добавили пространство после «18» на нашу DOCSTRING, поэтому доктра на самом деле ожидала номера «18», а затем пространство. Также остерегайтесь накладных словарей в качестве вывода в ваших примерах DocString. Словари могут быть в любом порядке, поэтому вероятность того, что это соответствует вашему фактическому выводу, не очень хорошо.

Бег док в модуле

Давайте немного изменим пример, чтобы мы импортировали доктра Модуль и использовать его testmod функция.

Здесь мы импортируем доктю и называем dorceSt.testmod. Мы передаем это ключевое слово аргумент Verbose = True Так что мы можем увидеть некоторые вывод. В противном случае этот скрипт будет работать без вывода, что и означает, что тесты успешно работают.

Если вы не хотите, чтобы вы не хотите сложно-код варианта Verbose, вы также можете сделать это в командной строке:

Теперь мы готовы узнать, как поставить тесты в отдельный файл.

Запуск доктора от отдельного файла

Довольный модуль также поддерживает поставить тестирование в отдельный файл. Это позволяет нам отделить тесты из кода. Давайте распределим тесты из предыдущего примера и поместите их в текстовый файл с именем Tests.txt :

Давайте запустим этот тестовый файл в командной строке. Вот как:

Вы заметите, что синтаксис для вызова DATEST с текстовым файлом такой же, как вызывая его с помощью файла Python. Результаты одинаковы. В этом случае вместо двух тестов есть три теста, потому что мы также импортируем модуль. Вы также можете запустить тесты, которые находятся в текстовом файле внутри интерпретатора Python. Вот один пример:

Здесь мы просто импортируем докуда и называем его testfile метод. Обратите внимание, что вам нужно также пройти имя файла или путь к функции TestFile. Это вернет TestResults Объект, который содержит, сколько испытаний пытались и сколько не удалось.

Упаковка

На данный момент вы должны уметь понять, как эффективно использовать док-модуль в вашем собственном коде. Вы должны пойти и прочитать Довольная документация Поскольку там есть дополнительная информация о вариантах флагах и исключениях, которые вы можете найти полезными. Весело и счастливое кодирование!

Скачать код

  • Тестирование .zip

Связанное чтение