2013-12-10 2 views
5

У меня есть довольно большой пакет Python, который я написал, около 3500 заявлений, с надежным набором модулей приёма и приёма. Я чувствую себя вполне уверенно в качестве самого кода, но мне неловко, что процесс установки идет гладко для пользователей пакета, поскольку я не знаю, как надежно протестировать установку в соответствующей изолированной среде, за исключением чего-то вроде сохраняя запасную машину и повторно отображая ее с новой установкой ОС для каждого тестового прогона.Как проверить setup.py для моего пакета?

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

Как я могу эффективно протестировать мои setup.py и другие установочные биты на моей машине разработки?

+2

Почему просто не пытайтесь «установить python setup.py install» в virtualenv? –

+0

Как узнать, что на моей машине разработки не используются файлы или другие зависимости, которые не будут находиться в среде конечного пользователя? – scanny

+0

Если вы чувствуете, что не можете верить, что virtualenv делает то, что вы хотите, вы можете попробовать виртуальную машину. Захватите VirtualBox и сделайте снимок, затем вы можете запустить setup.py и восстановить моментальный снимок, чтобы вернуться в чистое состояние. Виртуальные машины полезны и для тонны других вещей. :) Да, это слишком много для этого, но не как избыток как отдельная физическая машина. –

ответ

3

Если вы любите инструменты (которые я) проверить fabric и набор задач Fabric я написал во всех моих проектах:

например: circuits' fabfile

Это должно работать для примерно любой проект Python и использует:

  • Сфинкса
  • py.test/токсикодендрон
  • virtualenv

Некоторые основные технологические процессы:

fab build # build the package in non-development mode 
fab develop # build the package in development mode 
fab docs  # build/regenerate the documentation 
fab test  # run tie unit test suite 
fab release # run through a tested release cycle 

Тип: fab -l для списка команд и fab help:<name> для получения справки по любой команде.

Update: Недавно мы добавили fab docker команды для работы с Docker

fab docker:build # Build a Docker image 
fab docker:publish # Publish Docker image to the Docker Hub 
fab docker:run  # Run a new Docker container 
+0

Хм, это выглядит интересно. Итак, вы держите отдельную машину, которая работает где-то, чтобы выступать в качестве тестового оборудования для развертывания?Это фактически напоминает среду непрерывной интеграции (CI) как возможный вариант. Возможно, мне стоит подумать о том, чтобы положить пакет на Travis CI или что-то в этом роде. Я кратко подумал об этом некоторое время назад, но на самом деле не исследовал его. – scanny

+0

Нет, задачи с материалами являются только локальными. Тем не менее, я делаю все свои проекты как для служб drono.io, так и для shiningpanda.com CI, но этот ia обрабатывается автоматически с помощью привязок репозитория BitBucket. –

+0

Хм, это интересно. Итак, где на вашей локальной машине вы фактически занимаетесь строительством? Как вы получаете изоляцию и повышаете ли вы свою уверенность в скриптах сборки/setup.py? Я предполагаю, что мой другой вопрос заключается в том, почему вам нужно использовать ткань вместо простого скрипта bash, если нет соединения SSH? Или есть? – scanny

2

Если вы действительно хотят изоляции, а не просто делать python setup.py install в virtualenv. Затем используйте виртуальный бокс и установите в него некоторые бесплатные linux os. Сделайте снимок машины после установки, чтобы вы могли легко вернуться одним щелчком мыши к начальной точке в любое время и попробовать python setup.py install.

 Смежные вопросы

  • Нет связанных вопросов^_^