Najpierw odpowiedz na twoje pytanie: Tak, są zdecydowanie częścią Ciągłej integracji, jeśli mnie pytasz. Myślę jednak, że musimy wyjaśnić, jakie są testy integracyjne.
Martin Fowler mówił o ciągłym dostarczaniu jako sposobie zautomatyzowania całego procesu kompilacji w celu szybkiego wdrożenia. Wymaga to od programistów szybkiego uzyskania informacji zwrotnej w ramach procesu ciągłej integracji. Określa więc etapy, przez które kompilacja powinna przejść :
- kompilacja zatwierdzeń
- dokładne testy
- rozlokowanie
Kompilacja zatwierdzeń nie powinna trwać dłużej niż 10 minut, jak twierdzi, ze względu na szybką informację zwrotną dla programistów.
Oto, jak widzę rzeczy: w pierwszym kroku pobierz najnowszy zatwierdzenie i go skompiluj. Jeśli to się powiedzie, uruchom testy jednostkowe, aby dowiedzieć się, czy twoje klasy / grupy klas działają zgodnie z oczekiwaniami.
Gdy to się powiedzie, przejdziesz do części testu integracji. Tutaj testujesz interakcję właśnie pomyślnie przetestowanych urządzeń. Polega to na zasilaniu urządzeń wejściowymi i obserwowaniu ich stanu / interakcji / wyjścia. Pamiętaj, że wciąż jesteśmy w kompilacji zatwierdzeń, więc chcemy, aby to również było szybkie. Dlatego interakcje z systemem plików, bazą danych, sieciami równorzędnymi itp. Muszą zostać zablokowane w celu szybkiego wykonania. Martin Fowler sugeruje również użycie baz danych w pamięci, jeśli są one potrzebne, tylko po to, aby szybko wykonać działanie na serwerze CI.
Po upewnieniu się, że jednostki działają i współdziałają zgodnie z wymaganiami, zwykle chcesz dowiedzieć się o zasięgu testu (samo testowanie małego podsystemu zwykle po prostu nie wystarcza) i udostępnić testowane artefakty do testowania funkcjonalnego / kontroli jakości / wdrożenia ( przeczytaj: dokładne testy), jeśli uważasz, że testy obejmują wystarczająco dużo twojego programu. Właśnie wtedy zapewniasz środowisko testowe, które odzwierciedla środowisko produkcyjne, na które celujesz, i uruchamiasz testy obejmujące prawdziwą bazę danych, rzeczywiste pliki, prawdziwe sieci równorzędne itp.
Na koniec testy integracyjne dotyczą zmian kodu. Chcesz się upewnić, że wprowadzone zmiany nie psują bieżącego systemu, co oznacza, że dobrze się integrują. Aby dowiedzieć się, czy są, musisz upewnić się, że zachowują się one same w sobie, a następnie, czy prawidłowo współdziałają ze swoimi zależnościami i czy w ogóle zostały przetestowane. Po przejściu wszystkich testów możesz być spokojny o swój system.
Jeśli na późniejszych etapach wystąpią jakiekolwiek problemy z programem (np. Gdy baza danych zwróci określoną wartość, połączenie sieciowe zostanie przerwane), należy spróbować usunąć te testy w testach integracyjnych. Kompilacja zatwierdzeń najprawdopodobniej jest szybsza niż kontrola jakości;)