Распределенное модульное тестирование и покрытие кода в Python - PullRequest
12 голосов
/ 20 января 2012

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

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

Модульные тесты по своей природе очень распараллеливаемы, так как они автономны и не сохраняют состояния от теста к тесту. Они возвращают только две части информации: пройти / потерпеть неудачу и покрытые строки кода. Похоже, что решение «карта / уменьшение» будет работать очень хорошо.

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

Ответы [ 3 ]

4 голосов
/ 20 января 2012

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

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

4 голосов
/ 20 января 2012

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

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

1 голос
/ 20 января 2012

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

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

...