# Testowanie selektywne {#selective-testing}
Wraz z rozwojem projektu rośnie liczba testów. Przez długi czas uruchamianie
wszystkich testów przy każdym PR lub push na `main` zajmowało dziesiątki sekund.
Ale to rozwiązanie nie skaluje się do tysięcy testów, które może mieć Twój
zespół.
Przy każdym uruchomieniu testów w CI najprawdopodobniej ponownie uruchamiasz
wszystkie testy, niezależnie od zmian. Selektywne testowanie Tuist pomaga
drastycznie przyspieszyć uruchamianie samych testów, uruchamiając tylko te
testy, które zmieniły się od ostatniego udanego uruchomienia testowego w oparciu
o nasz algorytm
hashing.
Testowanie selektywne działa z `xcodebuild`, który obsługuje dowolny projekt
Xcode, lub jeśli generujesz swoje projekty za pomocą Tuist, możesz zamiast tego
użyć polecenia `tuist test`, które zapewnia dodatkowe udogodnienia, takie jak
integracja z binary cache. Aby rozpocząć testowanie selektywne, postępuj zgodnie z
instrukcjami opartymi na konfiguracji projektu:
- xcodebuild
- Wygenerowany projekt
::: warning MODULE VS FILE-LEVEL GRANULARITY
Ze względu na brak możliwości wykrycia wewnątrzkodowych zależności między
testami i źródłami, maksymalna ziarnistość testowania selektywnego znajduje się
na poziomie celu. Dlatego zalecamy, aby cele były małe i skoncentrowane, aby
zmaksymalizować korzyści płynące z testowania selektywnego.
:::
::: warning TEST COVERAGE
Narzędzia pokrycia testów zakładają, że cały zestaw testów jest uruchamiany
jednocześnie, co czyni je niekompatybilnymi z selektywnym uruchamianiem testów -
oznacza to, że dane pokrycia mogą nie odzwierciedlać rzeczywistości podczas
korzystania z selekcji testów. Jest to znane ograniczenie i nie oznacza, że
robisz coś źle. Zachęcamy zespoły do zastanowienia się nad tym, czy pokrycie
nadal przynosi znaczące informacje w tym kontekście, a jeśli tak, to zapewniamy,
że już myślimy o tym, jak sprawić, by pokrycie działało poprawnie z selektywnymi
przebiegami w przyszłości.
:::
## Komentarze do żądań ściągnięcia/łączenia {#pullmerge-request-comments}
::: warning INTEGRATION WITH GIT PLATFORM REQUIRED
Aby uzyskać automatyczne komentarze do pull/merge requestów, zintegruj projekt
Tuist
z platformą
Git.
:::
Po połączeniu projektu Tuist z platformą Git, taką jak
[GitHub](https://github.com), i rozpoczęciu korzystania z `tuist xcodebuild
test` lub `tuist test` jako części przepływu CI, Tuist opublikuje komentarz
bezpośrednio w żądaniach ściągnięcia/łączenia, w tym informacje o tym, które
testy zostały uruchomione, a które pominięte: .