Ответ
В GitLab CI тесты выполняются на этапе (stage), который явно объявлен как test в конфигурационном файле .gitlab-ci.yml. Порядок этапов определяется списком stages. Например, типичный пайплайн может выглядеть так:
stages:
- build
- test
- deploy
unit_tests:
stage: test
script:
- echo "Running unit tests..."
- go test ./...
integration_tests:
stage: test
script:
- echo "Running integration tests..."
- ./run-integration-tests.sh
Ключевые моменты:
- Этап
testвыполняется после успешного завершения этапаbuild(если он есть). - Внутри одного этапа
testможно запускать несколько джоб (какunit_testsиintegration_tests) параллельно для ускорения. - По умолчанию, если любой тест упадет, весь пайплайн останавливается, что предотвращает развертывание битого кода. Это поведение можно изменить с помощью
allow_failure: true. - Для тестов часто используются артефакты (бинарники, зависимости), собранные на этапе
build.