Я (пере) пишу программу, которая выполняет общее планирование модульных тестов. Текущая программа является однопоточной Perl-программой, но я готов ее модульно выполнить и распараллелить тесты. Я также подумываю переписать его на Python.
Вот что мне нужно сделать:
- У меня есть список тестов со следующими атрибутами:
- uri: URI для тестирования (может быть HTTP / HTTPS / SSH / локальный);
- зависит: ассоциативный массив тестов / значений, от которых зависит этот тест;
- объединение: список соединений БД, добавляемых при выборе элементов для обработки в этом тесте;
- disabled_db: дополнительные условия, добавляемые к запросу БД при выборе элементов для обработки в этом тесте.
- Программа строит дерево зависимостей, начиная с тестов, которые не имеют зависимостей;
- для каждого теста:
- список элементов выбирается из базы данных с использованием условий (результаты зависимых тестов, соединений и зависимость_db);
- список элементов отправляется на URI (с помощью POST или stdin);
- результат извлекается в виде файла YAML со списком состояния и комментариями для теста для каждого тестируемого элемента;
- результаты сохраняются в БД;
- тест возвращается, что позволяет выполнять зависимые тесты.
- программа генерирует отчеты (CSV, БД, графвиз) о выполненных тестах.
Основное использование этой программы в настоящее время - проверка парка машин на наличие таких служб, как резервное копирование, DNS и т. Д. Затем могут быть следующие тесты:
- резервное копирование: на резервном компьютере (ах), вызываемом через HTTP, проверяется, хорошо ли работает резервное копирование;
- DNS: размещенный на локальном компьютере, вызываемый через stdin, проверяет, есть ли у fqdn машины допустимая запись DNS.
Такой инструмент / модуль уже существует? Какова будет лучшая реализация для достижения этого (с использованием Perl или Python)?