> 백엔드 개발 > Golang > Go 단위 테스트에서 명령줄 인수를 효과적으로 테스트하려면 어떻게 해야 합니까?

Go 단위 테스트에서 명령줄 인수를 효과적으로 테스트하려면 어떻게 해야 합니까?

Barbara Streisand
풀어 주다: 2024-12-20 00:46:09
원래의
695명이 탐색했습니다.

How Can I Effectively Test Command-Line Arguments in Go Unit Tests?

Go 유닛 테스트에서 명령줄 인수 테스트

질문에서 Go 유닛의 명령줄 플래그 사용과 관련된 문제를 언급하셨습니다. 테스트. 다양한 애플리케이션 모듈 세트를 사용하는 테스트가 포함된 모듈식 애플리케이션이 있으며 그 중 일부는 명령줄 플래그를 통해 조정됩니다. 그러나 사용자 정의 명령줄 플래그를 사용하여 테스트를 실행하면 플래그가 정의되지 않았다는 오류가 발생합니다.

기본적인 문제는 테스트 실행 파일이 하나 또는 하나가 아닌 한 모든 명령줄 매개변수를 적용한다는 것입니다. 그 중 더 많은 부분이 무시됩니다. 귀하의 경우에는 여러 테스트가 있으며 그 중 일부는 사용자 정의 플래그를 사용하지만 다른 일부는 사용하지 않습니다.

이 문제를 해결하려면 다음 두 가지 옵션이 있습니다.

  • 각 _test.go 파일에 대해 개별적으로 go 테스트를 실행합니다. 각 테스트에 대해 적절한 매개변수 세트를 개별적으로 전달합니다. 예:
go test -test.v ./testfile1_test.go -gamedir.custom=c:/resources
go test -test.v ./testfile2_test.go
로그인 후 복사
  • 테스트에서 사용되지 않은 플래그를 무시합니다. 사용되지 않은 플래그를 무시하도록 테스트 파일을 수정합니다. 예를 들어 -gamedir.custom 플래그를 사용하지 않는 테스트에서는 다음 코드를 추가할 수 있습니다.
var customPath string
func init() {
    flag.StringVar(&customPath, "gamedir.custom", "", "Custom game resources directory")
}
func TestFunc(t *testing.T) {
    if testing.Short() {
        return
    }
    t.Skip("Skipping this test as it uses `-gamedir.custom` flag")
}
로그인 후 복사

testing.Short() 검사는 테스트가 실행되는지 확인하는 데 사용됩니다. 일반적으로 모든 테스트를 동시에 실행하는 경우인 짧은 모드에서 실행됩니다. 테스트가 단기 모드로 실행되는 경우 건너뜁니다. 그렇지 않으면 -gamedir.custom 플래그가 사용되지 않기 때문에 테스트를 건너뛰게 됩니다.

위 내용은 Go 단위 테스트에서 명령줄 인수를 효과적으로 테스트하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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