본문으로 건너뛰기
로그인 둘러보기
개발·코딩·데이터베이스 · 윈도우즈 유틸

nanovision

0

nanovision은 IgorBayerl이 개발한 Go 기반 코드 커버리지 시각화 도구입니다. Cobertura, GoCover, GCov 같은 커버리지 보고서를 사람이 읽기 쉬운 HTML, 텍스트 요약, LCOV, Raw JSON 형태로 변환해 주는 것이 핵심 목적입니다.

보고서 생성기커버리지 보고서코드 품질테스트 자동화테스트 커버리지

소개

nanovision은 IgorBayerl이 개발한 Go 기반 코드 커버리지 시각화 도구입니다. Cobertura, GoCover, GCov 같은 커버리지 보고서를 사람이 읽기 쉬운 HTML, 텍스트 요약, LCOV, Raw JSON 형태로 변환해 주는 것이 핵심 목적입니다. 단순한 비율 나열을 넘어 어떤 코드가 어떤 이유로 커버되었는지 파악할 수 있도록 돕는 점이 특징입니다.

상세정보

다양한 입력·출력 형식 지원

입력으로 Cobertura, Go Cover, GCov를 받아들이고, 결과는 HTML, Text Summary, LCOV, Raw JSON으로 출력할 수 있습니다.

보고서 병합

서로 다른 언어나 테스트 스위트에서 나온 커버리지 보고서를 하나로 합쳐 통합된 뷰로 보여줍니다.

패치(변경분) 커버리지

git diff를 활용해 새로 추가되거나 변경된 코드 라인의 커버리지만 별도로 분석하므로 PR 단계에서 신규 코드의 테스트 누락을 점검하는 데 활용할 수 있습니다.

깊은 정적 분석 지표

cyclomatic complexity 같은 메서드·함수 수준의 지표를 계산하며, v0.2.0에서는 CRAP score, patch CRAP, exposed risk, defect probability 같은 파생 리스크 지표가 자동 등록·정렬되어 표시됩니다. 또한 C++, GDScript, Go에 대한 다국어 정적 분석과 정적 분석 기반 statement 커버리지가 함께 제공됩니다.

SARIF 및 Problems 패널

SARIF 2.1.0 형식의 보고서를 생성해 편집기 네이티브 진단으로 표시할 수 있고, HTML 보고서 내에는 커버리지 리스크를 인라인 경고/오류로 보여주는 접이식 Problems 패널이 포함됩니다.

모던 HTML UI

정적 HTML 페이지를 생성해 어디에나 호스팅할 수 있으며, v0.2.0에서 UI 레이아웃이 재구성되고 VSCode 스타일의 DiffStatusBadge가 적용되었습니다. 표시 지표는 설정을 통해 선택할 수 있습니다.

Windows에서 winget으로 설치

winget을 사용하는 환경에서는 다음 명령으로 설치할 수 있습니다.

  • winget install –id IgorBayerl.nanovision –exact
  • README에는 winget install nanovision 형태의 설치 예시도 안내되어 있습니다.

Linux에서 설치

Linux에서는 공식 설치 스크립트를 받아 실행하는 방식이 제공됩니다.

  • curl -sL https://raw.githubusercontent.com/IgorBayerl/nanovision/main/scripts/install.sh | bash

Releases에서 직접 내려받기

Windows 또는 Linux 바이너리는 GitHub Releases 페이지에서 zip 등 릴리스 자산으로 다운로드할 수 있습니다.

설치 확인

설치 후에는 버전을 확인하고 도움말을 살펴 도구의 옵션 구조를 파악합니다.

  • nanovision -version
  • nanovision -help

기본 HTML 보고서 생성

커버리지 파일과 소스 디렉터리를 지정해 가장 기본적인 HTML 보고서를 생성합니다.

  • nanovision -report=”coverage.out” -sourcedirs=”.”

여러 보고서 병합

여러 언어·테스트 스위트의 커버리지를 결합해 단일 뷰로 만듭니다.

  • nanovision -report=”cobertura.xml;gocover.out” -sourcedirs=”src/csharp;src/go”

패치 커버리지(diff 분석)

기준 브랜치 대비 변경된 라인만 분석해 PR 검토에 활용합니다.

  1. git diff main > changes.diff 로 diff 파일을 생성합니다.
  2. nanovision -report=”coverage.out” -sourcedirs=”.” -diff=”changes.diff” 형태로 실행합니다.

설정 파일 활용

파일 필터링, 리스크 임계값, 제외 경로 등 복잡한 구성은 nanovision.yaml 파일로 지정할 수 있으며, 자세한 내용은 공식 Configuration 문서에서 확인할 수 있습니다.

어떤 커버리지 형식을 입력으로 받나요?

Cobertura, Go Cover, GCov 형식을 입력으로 지원합니다.

출력 결과는 어떤 형식으로 생성되나요?

HTML, Text Summary, LCOV, Raw JSON 네 가지 출력 형식을 제공합니다.

여러 보고서를 하나로 합칠 수 있나요?

세미콜론으로 구분해 여러 보고서 경로와 소스 디렉터리를 지정하면 단일 통합 보고서로 병합됩니다.

패치 커버리지를 어떻게 사용하나요?

git diff로 생성한 diff 파일을 -diff 옵션에 지정해 변경 라인에 한정한 커버리지를 확인할 수 있습니다.

라이선스는 무엇인가요?

Apache-2.0 라이선스로 배포되며, 자세한 조건은 저장소의 LICENSE에서 확인할 수 있습니다.

시스템 요구사항

winget 식별자는 IgorBayerl.nanovision이며, zip 형식 패키지(아키텍처 x64)로 배포됩니다. 설치는 winget 명령 또는 GitHub Releases 페이지에서 Windows/Linux 바이너리를 내려받는 방식이 제공됩니다. 리눅스에서는 공식 설치 스크립트(raw.githubusercontent.com의 scripts/install.sh)를 통해 설치할 수 있습니다. CLI 명령은 nanovision 바이너리 실행 환경이 필요하며, 보고서 입력 파일(coverage.out, cobertura.xml, gocover.out 등)과 소스 디렉터리, 그리고 패치 커버리지 사용 시 git diff 파일이 함께 요구됩니다.