>  기사  >  백엔드 개발  >  Go 테스트를 위한 작업 디렉터리를 올바르게 설정하는 방법은 무엇입니까?

Go 테스트를 위한 작업 디렉터리를 올바르게 설정하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-10-31 03:57:02917검색

How to Correctly Set the Working Directory for Go Tests?

Go 테스트에서 작업 디렉터리 문제 해결

Go에서 단위 테스트는 특정 작업 디렉터리에 있는 구성 파일에 액세스할 때 문제에 직면할 수 있습니다. 이 문서에서는 이러한 문제를 다루고 테스트 실행을 위해 원하는 작업 디렉터리를 사용하도록 go test 명령을 안내하는 방법을 살펴봅니다.

다음 상황을 고려하세요. Go 애플리케이션의 단위 테스트는 conf/*에 있는 구성 파일에 의존합니다. .conf 그러나 이러한 테스트를 실행할 때 바이너리가 구성 파일을 찾을 수 없기 때문에 실패합니다.

이 문제를 해결하려면 conf/ 디렉터리가 포함된 디렉터리로 이동하여 go test를 실행하는 것이 직관적으로 보일 수 있습니다. 그러나 이 접근 방식은 종종 부족합니다. 테스트가 올바른 작업 디렉터리에서 실행되도록 하기 위해 Go는 다음과 같은 특정 메커니즘을 제공합니다.

호출자 함수 활용

Go의 런타임 패키지는 소스에 대한 정보를 검색할 수 있는 Caller라는 함수를 제공합니다. 이를 호출한 파일입니다. 이 정보에는 파일 이름과 경로가 포함됩니다.

<code class="go">package sample

import (
    "testing"
    "runtime"
    "fmt"
)

func TestGetFilename(t *testing.T) {
    _, filename, _, _ := runtime.Caller(0)
    t.Logf("Current test filename: %s", filename)
}</code>

이 기술을 사용하면 구성 파일이 포함된 디렉터리를 찾고 해당 정보를 테스트에 전달하여 테스트 실행을 위한 작업 디렉터리를 설정할 수 있습니다.

위 내용은 Go 테스트를 위한 작업 디렉터리를 올바르게 설정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.