W przypadku ciągłej integracji wykonującej testy przy każdym zatwierdzeniu powszechną najlepszą praktyką jest przechodzenie wszystkich testów przez cały czas (aka „nie przerywaj kompilacji”).
Mam z tym pewne problemy:
Na przykład nie można pomóc projektowi typu open source, tworząc testy odpowiadające biletom. Wiem, że jeśli zgłoszę żądanie ściągnięcia do projektu typu open source zawierającego test zakończony niepowodzeniem, kompilacja zostanie oznaczona jako nieudana, a projekt nie będzie chciał scalić jej z repozytorium, ponieważ „przerwie kompilację”.
I nie wierzę, że źle jest mieć nieudane testy w twoim repozytorium , to jak mieć otwarte problemy w twoim trackerze. To tylko rzeczy czekające na naprawę.
To samo dotyczy firmy. Jeśli pracujesz z TDD, nie możesz pisać testów, zatwierdzać, a następnie pisać kodu logicznego, który spełnia test. Oznacza to, że jeśli napisałem 4-5 testów na swoim laptopie, nie mogę wykonać ich przed wyjazdem na wakacje. Nikt nie może odebrać mojej pracy. Nie mogę ich nawet „udostępnić” koledze, chyba że wysyłam je na przykład pocztą elektroniczną. Uniemożliwia to również pracę z jedną osobą piszącą testy, a drugą z modelem.
Wszystko to, żeby powiedzieć, czy niewłaściwie używam / nie rozumiem procesu kompilacji / ciągłej integracji? Wydaje mi się, że „przejście” / „przejście” jest zbyt wąskim wskaźnikiem.
Czy istnieje sposób na zapewnienie ciągłej integracji i kompatybilności TDD?
Może istnieje standardowe rozwiązanie / praktyka pozwalające rozróżnić „nowe testy” (które mogą zawieść) i „testy regresyjne” (które nie powinny zawieść, ponieważ kiedyś działały)?