GO · 테스트
CI/CD 테스트 전략
CI/CD 파이프라인에서의 Go 테스트 전략. 단계별 실행과 캐싱을 최적화합니다.
테스트고급ci-cdtestingpipelinestrategy
핵심 설명
CI/CD 파이프라인에서의 Go 테스트 전략. 단계별 실행과 캐싱을 최적화합니다.
Go code
package main
import "fmt"
func main() {
fmt.Println("=== CI/CD Go 테스트 전략 ===")
fmt.Println()
fmt.Println("1단계: 빠른 검증 (PR 체크)")
fmt.Println(" go vet ./...")
fmt.Println(" staticcheck ./...")
fmt.Println(" go test -short -count=1 ./...")
fmt.Println()
fmt.Println("2단계: 전체 테스트")
fmt.Println(" go test -race -count=1 ./...")
fmt.Println(" go test -cover -coverprofile=coverage.out ./...")
fmt.Println()
fmt.Println("3단계: 통합 테스트")
fmt.Println(" go test -v -tags=integration -count=1 ./...")
fmt.Println()
fmt.Println("4단계: 벤치마크 (주간)")
fmt.Println(" go test -bench=. -benchmem -count=5 ./...")
fmt.Println()
fmt.Println("5단계: 퍼즈 테스트 (야간)")
fmt.Println(" go test -fuzz=. -fuzztime=5m ./...")
fmt.Println()
fmt.Println("캐싱:")
fmt.Println(" GOMODCACHE, GOCACHE 디렉토리를 CI 캐시에 저장")
fmt.Println(" go test -count=1 로 캐시 무효화 (CI에서 권장)")
}학습 팁
go test -count=1은 테스트 캐시를 무효화합니다. CI에서는 항상 사용하여 실제 테스트를 실행하세요.
주의할 점
CI에서 -race와 -cover를 동시에 사용하면 성능이 크게 저하됩니다. 별도 단계로 분리하세요.
자주 묻는 질문
CI/CD 테스트 전략란 무엇인가요?
CI/CD 파이프라인에서의 Go 테스트 전략. 단계별 실행과 캐싱을 최적화합니다.
CI/CD 테스트 전략 학습 시 주의할 점은 무엇인가요?
CI에서 -race 와 -cover 를 동시에 사용하면 성능이 크게 저하됩니다. 별도 단계로 분리하세요.
Continue Learning
Go 학습을 이어가세요
총 200개의 독립 HTML 학습 문서 중 하나입니다. 각 문서는 고유 URL과 canonical 메타데이터를 가집니다.