2012-01-20 2 views
12

В моем текущем проекте есть политика покрытия 100% кода из его модульных тестов. Наша служба непрерывной интеграции не позволит разработчикам продвигать код без 100% -ного охвата.Тестирование распределенных модулей и покрытие кода в Python

Поскольку проект вырос, так что есть время, чтобы запустить полный набор тестов. Хотя разработчики обычно запускают подмножество тестов, относящихся к коду, который они меняют, они обычно выполняют один окончательный полный запуск перед отправкой в ​​CI, а сам сервер CI также запускает полный набор тестов.

Единичные испытания по своей природе являются высокопараллелизуемыми, поскольку они являются автономными и без гражданства от теста к тесту. Они возвращают только две части информации: pass/fail и строки кода. Решение с отображением карты/уменьшения кажется, что оно будет работать очень хорошо.

Существуют ли какие-либо рамки тестирования Python, которые будут запускать тесты через кластер машин с охватом кода и объединить результаты по завершении?

+0

Вы нашли что-нибудь, что делает то, что вы хотели? –

+0

@ stair314 К сожалению нет. Мы купили еще немного времени, оптимизируя собственные тесты модулей и вырезая большое количество ненужной работы. Мы также добавили машины в наш кластер CI, чтобы мы могли строить (и тестировать) параллельно, но мы все равно выполняем все тесты каждый раз. Надеюсь, в какой-то момент мы сможем сосредоточить усилия на развитии этой проблемы. –

ответ

4

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

Как минимум это может быть хорошее место, чтобы начать создавать распределенную среду тестирования

1

Не совсем то, что вы смотрите, но ближе всего я мог вспомнить, это из групп Hadoop использует JUnit для тестирования с Hadoop , Вот mail. Как упоминалось в почтовом поиске для gridunit документов.

Очень интересно провести модульное тестирование с помощью Hadoop в распределенном виде. Любые рамки вокруг этого будут очень полезны, но разработка структуры не должна быть очень сложной. Если интересно, дайте мне знать.

4

Я думаю, что нет рамки, которая точно соответствует вашим потребностям.

Я знаю, что py.test имеет плагин xdist, который добавляет распределенных тестовых исполнителей. Вы можете использовать его для написания своей инфраструктуры CI поверх нее.

+0

Ссылка мертва. –

+0

https://pypi.python.org/pypi/pytest-xdist – Twirrim

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