# Распараллеливание тестов {#test-sharding}

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

В таких случаях вам нужна система, которая распределяет тесты между несколькими CI-раннерами и агрегирует результаты в единое представление. Именно этим занимается распараллеливание тестов.

Tuist использует исторические данные о времени выполнения тестов, чтобы интеллектуально сбалансировать нагрузку между шардами с помощью [алгоритма упаковки в контейнеры](https://en.wikipedia.org/wiki/Bin_packing_problem), благодаря чему каждый раннер завершает работу примерно в одно и то же время. Результаты со всех шардов автоматически агрегируются в разделе <.localized_link href="/guides/features/test-insights">Аналитика тестов</.localized_link>, предоставляя единое представление о вашем наборе тестов по всем шардам.

<.home_cards>
  <.home_card
    title="Xcode"
    details="Распараллеливайте тесты Xcode между параллельными CI-раннерами."
    link="/guides/features/test-sharding/xcode"
/>
  <.home_card
    title="Сгенерированные проекты"
    details="Распараллеливайте тесты в сгенерированных Tuist проектах между параллельными CI-раннерами."
    link="/guides/features/test-sharding/generated-xcode-project"
/>
  <.home_card
    title="Gradle"
    details="Распараллеливайте тесты Gradle между параллельными CI-раннерами."
    link="/guides/features/test-sharding/gradle"
/>
  <.home_card
    title="Elixir"
    details="Распараллеливайте тесты вашего проекта на Elixir между параллельными CI-раннерами."
    link="/guides/features/test-sharding/elixir"
/>
  <.home_card
    title="Rust"
    details="Распределяйте цели тестирования Cargo между параллельными CI-воркерами."
    link="/guides/features/test-sharding/rust"
/>
</.home_cards>
