Go에서 테스트 커버리지를 어떻게 사용하나요?

WBOY
풀어 주다: 2023-05-11 17:04:53
원래의
2508명이 탐색했습니다.

현대 소프트웨어 개발 시대에 테스트는 코드 신뢰성과 품질을 보장하는 핵심 도구 중 하나로 간주됩니다. 코드 커버리지는 코드가 완전히 신뢰할 수 있고 제대로 작동한다는 것을 의미하지는 않지만 코드가 적절하게 테스트되었음을 ​​확인하는 지표입니다. 코드 커버리지는 테스트 코드가 애플리케이션 코드를 얼마나 잘 커버하는지를 나타냅니다. Go 프로그래밍 언어에서는 내장된 테스트 및 커버리지 도구를 사용하여 코드의 테스트 커버리지를 쉽게 계산할 수 있습니다. 이번 글에서는 Go를 활용한 테스트 커버리지의 기본과 가이드라인을 소개하겠습니다.

1. 테스트 커버리지 계산 방법

테스트 커버리지란 소스 코드를 커버할 때 테스트 코드에서 생성되는 측정 값을 말합니다. Go의 공식 문서에서는 테스트 커버리지 결과를 표시하려면 명령줄에 "go test -cover"를 입력하세요. 페이지 상단에서 전체 코드 라인 수, 테스트에서 다룬 라인 수, 테스트 커버리지 비율을 포함하는 커버리지 보고서를 출력합니다.

그러나 소스 코드의 모든 라인을 테스트할 수 있는 것은 아니기 때문에 모든 라인이 커버리지 통계에 포함되는 것은 아닙니다. 예를 들어 조건문을 통해 루프를 반복할 수 있으며 각 분기에 대한 테스트가 필요합니다. 마찬가지로 예외 처리기 및 기타 오류 처리 메커니즘은 테스트의 신뢰도를 높일 수 있습니다.

2. 테스트 커버리지를 사용하여 테스트를 구현하는 방법

일반 Go 프로그램의 경우 "mysource.go"라는 소스 코드 파일을 만들어야 합니다. 이 코드를 테스트하려면 "mysource_test.go"라는 특수 테스트 파일을 작성하세요. 이 파일에는 일부 단위 테스트 및 테스트 사례를 실행하기 위한 패키지 수준 테스트 기능이 포함되어 있어야 합니다.

다음은 Go 프로그램에서 테스트 커버리지 통계 기능을 사용하는 예입니다.

package main

func isPalindrome(s string) bool {
    for i := range s {
        if s[i] != s[len(s)-i-1] {
            return false
        }
    }
    return true
}
로그인 후 복사

"mysource_test.go"에서 이 기능을 테스트하려면 다음 테스트 케이스를 작성할 수 있습니다.

package main

import "testing"

func TestIsPalindrome(t *testing.T) {
    var tests = []struct {
        input string
        want  bool
    }{
        {"racecar", true},
        {"hello", false},
        {"", true},
    }
    for _, test := range tests {
        if got := isPalindrome(test.input); got != test.want {
            t.Errorf("isPalindrome(%q) = %v", test.input, got)
        }
    }
}
로그인 후 복사

여기서 테스트를 사용합니다. Go의 패키지. 테스트 케이스가 포함된 구조를 반복하는 "TestIsPalindrome"이라는 테스트 함수를 정의합니다. 루프 내에서 t.Errorf 함수를 사용하여 오류를 기록하고 실제 결과와 예상 결과를 인쇄합니다.

3. 코드에서 테스트 커버리지 정보를 보는 방법

테스트 커버리지 정보를 보려면 "go test -cover" 명령을 실행해야 합니다. Go 컴파일러는 애플리케이션 코드를 포함하는 테스트 코드 줄 수를 설명하기 위해 적용 범위 개요를 생성합니다. 예는 다음과 같습니다.

PASS
coverage: 83.3% of statements
ok      github.com/mediomelon/testing-in-go  0.003s
로그인 후 복사

여기서 커버리지 차트를 보면 코드의 83.3%(5개 테스트에 포함된 5줄의 코드)가 테스트에 포함되어 있음을 알 수 있습니다.

4. 고급 테스트 적용 도구 활용

Go는 간단한 명령줄 인터페이스 외에도 고급 테스트 적용 도구도 제공합니다. 예를 들어 gocov는 Go 언어 코드를 테스트하기 위한 적용 도구입니다. 이는 테스트 코드의 적용 범위를 이해하는 데 도움이 되는 적용 범위와 같은 통계를 표시합니다.

gocov의 구체적인 사용법:

  1. 먼저 gocov 도구를 설치하세요.
  2. 소스 코드를 다운로드하세요.
  3. "gocov test . | gocov report" 명령을 실행하세요.
  4. 실행 후 적용 범위는 다음과 같습니다.
github.com/mediomelon/testing-in-go/cmd/upgrade/main.go
lines: 100.0% (1/1)

total: 100.0% (1/1)
로그인 후 복사

요약

Go 프로그래밍 언어에서 테스트 커버리지를 확인하는 것은 매우 중요한 작업입니다. 코드 및 단위 테스트를 실행한 후 "Go test -cover" 명령을 사용하여 생성된 테스트 코드가 소스 코드를 커버하는 정도를 계산합니다. gocov와 같은 도구를 사용하여 적용 범위 통계에 대해 자세히 알아볼 수 있습니다. 테스트 적용 범위를 올바르게 사용하면 애플리케이션의 신뢰성, 유지 관리 가능성 및 안정성을 보장하고 코드 품질을 향상시킬 수 있습니다.

위 내용은 Go에서 테스트 커버리지를 어떻게 사용하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿