Inną opcją jest posiadanie dalszego procesu budowy, który obejmuje testy. Sposób, w jaki to robię, jest następujący:
Jeśli testy są jednostkowe testy to tworzę nowy obraz Docker, który pochodzi od głównego obrazu projektu; Po prostu przykleję FROM
na górze, a następnie ADD
testy, plus wszelkie wymagane narzędzia (w moim przypadku, mocha
, chai
i tak dalej). Ten nowy "testowy" obraz zawiera teraz zarówno testy, jak i oryginalne testowane źródło. Można go po prostu uruchomić tak, jak jest, lub można go uruchomić w "trybie oglądania" z woluminami zmapowanymi do katalogu źródłowego i testowego na hoście.
Jeśli testy są testy integracyjne --for przykład pierwotny obraz może być serwerem GraphQL - wtedy obraz tworzę jest samowystarczalny, to znaczy, nie pochodzi od obrazu pierwotnego (nadal zawiera testy i narzędzia, oczywiście). Moje testy wykorzystują zmienne środowiskowe, aby poinformować ich, gdzie znaleźć punkt końcowy, który wymaga testowania, i łatwo jest uzyskać kompilację Docker, aby wywołać zarówno kontener przy użyciu obrazu podstawowego, jak i inny kontener za pomocą obrazu testowego integracji i ustawić zmienne środowiskowe, aby zestaw testów wiedział, co przetestować.
Użyj różnych katalogów bazowych? – Henry