Cytatem Youtubowego kucharza (Food Emperor) polecam wszystkim narzędzie wniesione do zespołu, w którym pracuję, przez nowego kolegę Sebastiana.
Wiem że o NCrunchu pisało już wielu. Jednak nikomu nie udało się mnie do niego przekonać, więc jest pewnie wielu innych sceptyków tego narzędzia i do nich właśnie jest ten artykuł.
Jest to narzędzie pełniące rolę sumienia dla osób stosujących TDD. Każda linijka kodu C#-owego jest oznaczona kropą: białą gdy brakuje testów ją pokrywajacych, czerwoną gdy jakiś test nie przechodzi i zieloną gdy wszystko jest OK.
Skąd Ncrunch wie, że test nie przechodzi?
Po prostu uruchamia wszystkie testy w tle.
Więc co z wydajnością?
Jeszcze nie tego nie odczułem ale podejrzewam że będzie to kłopot. Na szczęście ncrunch nie pozostawia nas samych z tym problemem. Linijki uruchamiające się szczególnie długo są oznaczone jaśniejszym zielonym przechodzącym w żółty. Często są to miejsca w kodzie generujące efekty uboczne zmiany w bazie, zapis na dysku. Istnieje też możliwość wyłączenia części testów z uruchamiania w tle. Swoją drogą chyba za długo przebywam w towarzystwie fanów apple bo zaczynam rozpoznawać kolory.
I to wszystko za darmo?
Niestety nie. NCrunch kosztuje i to całkiem sporo, w dodatku subskrypcję trzeba odnawiać co rok. Prawdopodobnie łatwiej wam będzie namówić szefa niż samemu rozstać się z taką sumką. Oczywiście jak każdy dobry dealer twórca NCruncha daje pierwszą działkę gratis. Osobiście gdy tylko Trial się skończy zakupię sobie licencję (chcę z niego korzystać także po za pracą).
I pamiętajcie „To jest takie dobre, że gdy rozwiązujecie zadanie, testerka już robi się mokra”.
Tez mialem takie podejscie. NCrunch mial pomagac i w ogole. I faktycznie pomaga. Jednak ma tez sporo minusow. Np:
-kolejnosc budowania projektow nie zawsze jest taka sam – z czego wynikaja pozniej rozne dziwne sytuacje.
-bol zwiazany z konfiguracja narzedzia.
-dzielenie konfiguracji miedzy programistami.
-budowanie aplikacji mobilnych – czasem toporne
Pierwsze co robie w nowej firmie to przekonuje do zakupienia NCruncha 🙂
Dotatkowo polecam NCrunch Distributed Processing – mozna postawic NCruncha na jednym, lub kilku maszynach. Wtedy odpalane testy nie obciazaja naszej maszyny, tylko zrodla sa wysylane na serwer, tam budowane i odpalane.