Golang 기능의 테스트 적용 범위를 개선하는 방법은 무엇입니까? 적용 범위 측정: go test -cover 명령을 사용합니다. 테스트 케이스 예외 추가: 실행되지 않은 코드 경로에 대한 테스트 케이스 예외를 추가합니다. 적용 범위 프로필 사용: go test -coverprofile=cover.out을 사용하여 적용 범위 프로필을 만듭니다. 커버 도구 사용: 자세한 커버리지 보고서를 보려면 go tool Cover -html=cover.out을 사용하세요.
Golang 함수의 테스트 적용 범위를 개선하는 방법
소개
테스트 적용 범위는 테스트에서 애플리케이션의 어떤 부분이 실행되는지 측정합니다. 높은 적용 범위는 애플리케이션의 코드 경로 대부분이 테스트 중에 실행되었음을 의미하므로 소프트웨어의 신뢰성에 대한 신뢰도가 높아집니다. 이 문서에서는 Golang 기능의 테스트 적용 범위를 개선하는 방법을 안내합니다.
커버리지 측정
커버리지를 측정하려면 go test -cover
명령을 사용할 수 있습니다. 이 명령은 테스트 실행 후 적용 범위 보고서를 인쇄합니다. go test -cover
命令。该命令将在测试运行后打印覆盖率报告。
go test -cover
实用案例
考虑以下 Golang 函数:
func Sum(a, b int) int { return a + b }
初始测试覆盖率报告如下:
coverage: 50.0% of statements
该覆盖率表明只有 50% 的代码在测试中得到了执行。要提高覆盖率,需要添加测试用例外界因素,以执行未执行的代码路径。
添加测试用例外界因素
对于 Sum
函数,可以添加如下测试用例外界因素,以覆盖未执行的代码路径:
func TestSumNegative(t *testing.T) { result := Sum(-1, -2) if result != -3 { t.Errorf("Expected -3, got %d", result) } }
这个测试用例外界因素测试了函数是否处理负数输入。添加此测试用例外界因素后,覆盖率报告将如下所示:
coverage: 100.0% of statements
使用覆盖率配置文件
为了更容易地跟踪与覆盖率相关的更改,可以使用覆盖率配置文件。覆盖率配置文件包含了覆盖率数据,可用于在不同的测试运行之间进行比较。要创建覆盖率配置文件,请使用 go test -coverprofile=cover.out
命令。
go test -coverprofile=cover.out
使用 cover
工具
cover
工具是一个交互式工具,使您可以浏览代码覆盖率信息。要使用 cover
go tool cover -html=cover.out
실용 사례
다음 Golang 함수를 고려해보세요. rrreee
초기 테스트 커버리지 보고서는 다음과 같습니다.rrreee
이 커버리지는 테스트에서 코드의 50%만 실행되었음을 나타냅니다. 적용 범위를 향상하려면 실행되지 않는 코드 경로를 실행하는 테스트 사례 예외를 추가해야 합니다. 🎜🎜🎜테스트 사례 예외 추가🎜🎜🎜Sum
함수의 경우 실행되지 않은 코드 경로를 포함하기 위해 다음 테스트 사례 예외를 추가할 수 있습니다. 🎜rrreee🎜이 테스트 사례 예외는 함수 Handle negative가 테스트되는지 여부를 테스트합니다. 입력. 이 테스트 사례 예외를 추가한 후 적용 범위 보고서는 다음과 같습니다. 🎜rrreee🎜🎜Using Coverage Profiles🎜🎜🎜 적용 범위 관련 변경 사항을 더 쉽게 추적하려면 적용 범위 프로필을 사용할 수 있습니다. 커버리지 프로필에는 다양한 테스트 실행 간의 비교에 사용할 수 있는 커버리지 데이터가 포함되어 있습니다. 커버리지 프로필을 생성하려면 go test -coverprofile=cover.out
명령을 사용하세요. 🎜rrreee🎜🎜cover
도구 사용 🎜🎜🎜 cover
도구는 코드 검사 정보를 찾아볼 수 있는 대화형 도구입니다. cover
도구를 사용하려면 다음 명령을 실행하세요. 🎜rrreee🎜 그러면 각 기능과 방법에 대한 자세한 적용 범위 데이터를 보여주는 HTML 보고서가 기본 브라우저에서 열립니다. 🎜🎜🎜요약🎜🎜🎜테스트 사례 예외를 추가하고 적용 범위 프로필을 사용하면 Golang 기능의 테스트 적용 범위를 향상할 수 있습니다. 높은 적용 범위는 소프트웨어의 신뢰성에 대한 신뢰도를 높이고 코드에서 테스트되지 않은 영역을 식별하는 데 도움이 됩니다. 🎜위 내용은 Golang 기능의 테스트 및 적용 범위를 개선하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!