Автор оригинала: 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
Связанное чтение
- Документация Python на Довольный модуль
- Python 102: Вступление в TDD и Unittest
- Python Testing Blog: Довольное введение
- Pymotw – док