Рельсы распределили параллельные тесты - PullRequest
19 голосов
/ 09 сентября 2011

Как я могу запустить параллельные тесты на двухъядерных компьютерах, подключенных через SSH в той же сети?

https://github.com/grosser/parallel_tests отлично работает для местных работников, но нет возможности запустить его на нескольких машинах

https://github.com/qxjit/deep-test - мне не повезло при запуске, в примере есть строчка типа

t.distributed_hosts

который выдает ошибку

С Hydra у меня возникла проблема, ожидающая вечно ssh-работников

Я попробовал альфа-версию Buffet, создал тестовое репо и запустил его, но безуспешно

fatal: Not a git repository (or any of the parent directories): .git
fatal: Not a git repository (or any of the parent directories): .git
fatal: Not a git repository (or any of the parent directories): .git
fatal: Not a git repository (or any of the parent directories): .git
fatal: Not a git repository (or any of the parent directories): .git
fatal: Not a git repository (or any of the parent directories): .git
fatal: Not a git repository (or any of the parent directories): .git
fatal: Not a git repository (or any of the parent directories): .git
fatal: Not a git repository (or any of the parent directories): .git
fatal: Not a git repository (or any of the parent directories): .git
fatal: Not a git repository (or any of the parent directories): .git
fatal: Not a git repository (or any of the parent directories): .git

Я хочу запускать только стандартные модульные / интеграционные / функциональные тесты

Никаких наворотов.

Ответы [ 6 ]

2 голосов
/ 09 марта 2016

Вы можете проверить Testributor .

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

Создает файл компоновки Docker с использованием выбранных вами технологий.

Вам просто нужно скачать файл docker compose и запустить его, используя Docker с docker-compose up.

Вот и все.

Отказ от ответственности: я веб-разработчик в Testributor. Но я действительно думаю, что это может вам помочь.

1 голос
/ 26 сентября 2014

Если вы хотите запустить свои тесты на размещенной службе CI, то есть несколько хороших вариантов.Чтобы перечислить несколько здесь в произвольном порядке:

  1. Travis CI (есть про версия для частных репозиториев)
  2. Семафор (присутствует дополнение Heroku) параллелизм даже на свободных планах
  3. Tddium (уже упомянуто выше)
  4. Codeship (присутствует дополнение Heroku, неуверен в какой-либо поддержке из коробки)
  5. КругCI (Параллелизм на платных планах)
  6. Snap-CI ( Трубопроводный параллелизм позволяет вам больший контроль, но с некоторой конфигурацией. Также они могут добавлять больше встроенной поддержкив будущем)

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

Несколько других моментов, о которых следует помнить:

  • Параллелизм внутри одного и того же процесса может все же дать вам хорошие результаты на достаточно мощном блоке (с большим количеством ядер) без особых усилий, и ваша задачаПервый выбор, если у вас уже не закончилась опция.
  • Если ваша конечная цель - ускорить тестирование, посмотрите на некоторые преимущества, которые предлагает Travis-CI, с лучшей файловой системой и базой данных в памяти.(Я не уверен насчет этого)
  • Если вы все еще планируете настроить его самостоятельно, вам следует взглянуть на GoCD в сочетании с TestLoadBalancer (упоминалось ранее).
  • Имейте в виду, что если проблема, которую вы пытаетесь решить, заключается в растущем наборе тестов для достаточно большого проекта, вы, возможно, захотите активно начать думать о логическом разделении ваших наборов тестов и их фактическом ускорении, поскольку параллелизм только и задерживает конечную задержку.Проблема долго работающего набора тестов не решает ее полностью.
1 голос
/ 11 февраля 2014

попробуйте http://test -load-balancer.github.io / Я имел большой успех в прошлом.

0 голосов
/ 02 мая 2015

Вы также можете использовать Shippable http://www.shippable.com непрерывный сервис для параллельного теста

0 голосов
/ 19 апреля 2014

Я думаю, что проблема в конфигурации git. проверьте свою конфигурацию git

попробуйте эту ссылку

Как лучше всего работать с Github и несколькими компьютерами?

0 голосов
/ 17 декабря 2013

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

тесты, убитые в середине пробега с использованием parallel_tests

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...