Подтвердить что ты не робот

Рельсы распределяют параллельные тесты

Как я могу запускать тесты paralell на двухъядерных машинах, подключенных через 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

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

Никаких причудливых вещей.

4b9b3361

Ответ 1

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

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

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

Вам просто нужно загрузить файл компоновки докеров и запустить его с помощью Docker с помощью docker-compose up.

Что все.

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

Ответ 3

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

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

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

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

Ответ 6

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