Существуют ли какие-либо библиотеки Python для тестирования внешних сценариев Python? - PullRequest
3 голосов
/ 25 февраля 2012

Я бы хотел протестировать некоторые скрипты Python.

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

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

Это хорошая стратегия или лучше попытаться протестировать сценарии, запустив их в стиле черного ящика и изучив вывод.

1 Ответ

0 голосов
/ 25 февраля 2012

Библиотека тестов

Я продолжу и предложу unittest (даже несмотря на то, что это самый популярный продукт Google для "тестирования юнитов python", и вынаверное, уже об этом знают) .Это очень хорошая, простая в использовании, многофункциональная библиотека для модульного тестирования.

Стратегия тестирования

Написание тестируемого кода - hard .Тестирование таких вещей, как побочные эффекты, окружение и вывод файла, может занять unit прямо из unit test .

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

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

Заключение

  • максимально используйте модульные тесты
  • в противном случае используйте тесты черного ящика
  • постоянно рефакторинг кода для создания блока записитесты проще и эффективнее
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...