>백엔드 개발 >Golang >다른 패키지를 제외하면서 특정 패키지에 대해 Go 테스트를 어떻게 실행할 수 있나요?

다른 패키지를 제외하면서 특정 패키지에 대해 Go 테스트를 어떻게 실행할 수 있나요?

DDD
DDD원래의
2024-11-30 01:32:13852검색

How Can I Run Go Tests for Specific Packages While Excluding Others?

다른 패키지를 제외하고 특정 패키지 테스트

Go의 "go test" 명령을 사용하면 개발자가 프로젝트 내에서 테스트를 실행할 수 있습니다. 그러나 특정 패키지나 디렉터리를 테스트하는 것이 불필요하거나 바람직하지 않은 시나리오가 있을 수 있습니다. 이 질문은 테스트에서 특정 디렉토리를 건너뛸 가능성을 탐구합니다.

답변:

1. 명시적 호출:

한 가지 방법은 테스트할 각 패키지에 대해 "go test"의 명시적 호출을 사용하는 것입니다. 예를 들어 제시된 구조를 보면

mypackage
mypackage/net
mypackage/other
mypackage/scripts

다음 명령을 실행하여 "mypackage/scripts"를 제외하고 "mypackage", "mypackage/other" 및 "mypackage/net"에서 테스트를 실행할 수 있습니다. :

cd mypackage
go test
cd net
go test
cd other
go test

디렉토리를 포함하여 테스트할 패키지의 쉼표로 구분된 목록을 제공하는 것도 가능합니다. 경로:

go test mypackage,mypackage/other,mypackage/net

2. 셸 기반 호출:

사용되는 셸에 따라 와일드카드 확장을 사용하여 여러 테스트를 호출할 수 있습니다. 예를 들어 Bash 또는 Zsh의 경우:

go test mypackage/{,other,net}

3. "go list"를 사용한 제외:

"go list"를 사용하면 일반적으로 테스트되는 모든 패키지를 나열할 수 있습니다. grep을 통해 출력을 파이핑하고 원치 않는 디렉터리를 제외하면 필터링된 목록을 얻을 수 있습니다. 그런 다음 이 목록을 "go test"로 전달할 수 있습니다:

go test $(go list ./... | grep -v directoriesToSkip)

4. Testing.Short() 플래그 사용:

길이나 비용으로 인해 테스트를 건너뛰는 경우 "testing.Short()" 플래그를 사용할 수 있습니다. 특정 조건을 충족하는 테스트는 "testing.Short()"를 확인하고 "t.Skip()"을 호출하여 테스트에서 제외할 수 있습니다.

"mypackage"에서 테스트를 건너뛰려면 다음을 사용할 수 있습니다.

go test -short mypackage/

또는

go test -short ./...

이러한 기술을 활용하여 개발자는 원하는 패키지에 대해 선택적으로 테스트를 실행하면서 동시에 다른 사람은 제외합니다. 이러한 유연성은 테스트 프로세스의 효율성과 편의성을 향상시킬 수 있습니다.

위 내용은 다른 패키지를 제외하면서 특정 패키지에 대해 Go 테스트를 어떻게 실행할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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