2012-04-20 3 views
2

Я создал пакет Debian из проекта Python, который зависит от того, куча пакетов Debian работает. Проект Python также содержит тесты на единицу и интеграцию (с использованием py.test).Запуск тестов интеграции Python внутри среды pBuilder

Поскольку мой проект зависит от некоторых пакетов Debian, мне необходимо установить эти пакеты внутри тестовой среды, и они должны убедиться, что мой модуль работает правильно вместе с этими пакетами (я хочу убедиться, что мой модуль не сломается обновления этих библиотек).

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

Мой текущий подход для полного integrationtest моего пакета заключается в следующем:

  1. Создание среды pBuilder
  2. Установка зависимостей из Debian-управляющем в pBuilder окр
  3. Внутри pBuilder-среда запуска ру. тест, также используя virtualenv/tox, чтобы протестировать различные версии интерпретатора Python
  4. собрать результаты теста из тестовой среды (py.test может генерировать приятный JUnit-like test output, который Jenkin s может публиковать легко)

К сожалению, я не мог найти никаких намеков, как реализовать этот материал - особенно, как это сделать 3). Вся документация, которую я мог найти, - это просто создание пакета, а не запуск тестов.

Может ли кто-нибудь дать мне несколько советов, как я могу создать такую ​​тестовую настройку? Кроме того, я хочу знать, имеет ли смысл делать то, что я намереваюсь сделать. Как другие тестируют интеграцию модулей (Python) с другими пакетами Debian?

ответ

5

Я предполагаю, что вы хотите запустить тестовый комплект при создании упаковки.

1) Добавьте цель check в Makefile своего пакета, в котором выполняется ваш фактический testuite, включая всю магию virtualenv/tox; например .:

.PHONY: check 
check: 
    ./runtests.sh 

с runtests.sh сценария запуска проверки интерпретатора, а затем запускает р.тест

2) Настройте ваш debian/rules на самом деле запустить тесты

2а) Если вы используете CDBS, добавьте следующую строку в начале вашего Debian/правила

DEB_MAKE_CHECK_TARGET = check 

2b) Если вы используете debhelper, тогда сценарий dh_auto_test должен автоматически провести тесты для вас (при условии, что : a check target в вашем файле Makefile)

2с) Если у вас есть обычай debian/rules, запустите цель «проверки» после успешной сборки

1

Как другие проверки интеграции Python) модулей (с другими Debian пакетов?

Одним из вариантов является предоставление полной новой системы для запуска ваших тестов, то есть на виртуальной машине или на дешевом сервере облаков.

Если вы deadset на pBuilder, вы можете вызвать произвольный сценарий с pbuilder execute

Некоторых другими полезными советами по http://packaging.ubuntu.com/html/chroots.html

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