Выполнение юнит-теста Python через LSF
Мне нужно распараллелить мои юнит-тесты на python, которые я написал, используя модуль unittest по умолчанию. Я пытаюсь выбрать между двумя подходами:
- продолжайте использовать unittest, но используйте настраиваемый многопроцессорный раннер, который может порождать тест с использованием Platform LSF (инструмент удаленного выполнения), пример можно найти в проекте TestOOB.
- Используйте py.test и настройте плагин pytest-xdist для запуска LSF вместо SSH.
Я склоняюсь к #1, так как у меня уже есть рабочая установка, и в частности генерация тестового набора (который использует генератор, который анализирует электронную таблицу Excel и не является тривиальным)
Любая рекомендация по конкретному подходу следовать?
Примечание: моя компания использует LSF, и я должен использовать его для обмена ресурсами с другими командами.
1 ответ
Сначала я бы попытался просто установить "pytest-xdist" из pypi и запустить существующие тесты с "py.test -n 5" в 5 параллельных процессах. Если это в основном работает, это означает, что модификация pytest-xdist для использования транспорта LSF является целесообразным вариантом. По сути, вам нужно изучить расширение execnet (http://codespeak.net/execnet), которое является базовой библиотекой для распределения выполнения. НТН.