빌드, 테스트, 린트하기

빌드, 테스트, 린트하기

기여는 언제나 환영이에요. GitHub에서 이슈나 풀 리퀘스트를 열어주세요. 이 프로젝트는 Go로 작성되었습니다.

출처: 문서

본문

무엇을 할 수 있을까요

소스에서 서버를 실행하고, 테스트 스위트를 실행하며, 린터를 로컬에서 실행할 수 있어요.

시작하기 전에

  • 플랫폼용 Go 설치
  • 선택사항: 통합 테스트용 Docker

서버를 로컬에서 실행하기

STDIO(로컬 개발 기본값):

make run

SSE:

go run ./cmd/mcp-grafana --transport sse

Docker 이미지 빌드 및 실행하기

이미지 빌드:

make build-image

SSE 모드로 실행(이미지 기본값):

docker run -it --rm -p 8000:8000 mcp-grafana:latest

stdio 모드로 실행:

docker run -it --rm mcp-grafana:latest -t stdio

테스트 실행하기

단위 테스트, 통합 테스트, 클라우드 테스트의 세 가지 유형이 있어요.

단위 테스트(외부 의존성 불필요):

make test-unit

다음도 실행할 수 있어요:

make test

통합 테스트(Docker 컨테이너 필요):

make test-integration

클라우드 테스트(Grafana Cloud 인스턴스와 자격 증명 필요):

make test-cloud

참고: 클라우드 테스트는 CI에서 자동으로 구성됩니다. 로컬 개발에서는 자신의 Grafana Cloud 인스턴스와 자격 증명을 직접 설정해야 해요.

전체 통합 스위트를 위해 먼저 지원 서비스(Grafana와 그 의존성, 포트 3000)를 시작하세요:

make run-test-services
make test-integration

도구를 추가한다면 통합 테스트도 추가하세요. 기존 테스트가 좋은 템플릿이 됩니다.

린터 실행하기

make lint

이 저장소에는 jsonschema 구조 태그의 이스케이프되지 않은 쉼표를 검사하는 커스텀 린터가 포함돼 있어요 (description 필드는 잘림을 피하기 위해 \,로 이스케이프해야 합니다). 해당 린터만 실행하려면:

make lint-jsonschema

저장소의 JSONSchema linter README를 참고하세요.

다음 단계

더 알아보기 (Learn more)