>백엔드 개발 >Golang >상위 디렉터리에서 중첩된 Go 모듈을 테스트하는 방법은 무엇입니까?

상위 디렉터리에서 중첩된 Go 모듈을 테스트하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-10-28 20:11:02587검색

How to Test Nested Go Modules from the Parent Directory?

상위 디렉터리에서 중첩된 Go 모듈 테스트

Go의 테스트 프레임워크인 go test는 단일 Go 모듈 내에서 작동하도록 설계되었습니다. 여러 Go 모듈이 중첩된 하위 디렉터리에 상주하는 설명과 같은 폴더 구조가 발생하면 루트 디렉터리에서 Go 테스트를 실행하면 성공하지 못합니다.

"테스트할 패키지가 없습니다"라는 오류 메시지는 다음을 나타냅니다. go test가 현재 디렉터리나 해당 상위 디렉터리에서 테스트 가능한 패키지를 찾지 못했습니다. 이는 go 테스트가 현재 디렉토리나 그 직계 상위 디렉토리에 루트로 있는 단일 모듈에서 작동할 것으로 예상하기 때문입니다.

안타깝게도 go 테스트는 현재 중첩 모듈을 직접 테스트하는 것을 지원하지 않습니다. 여러 하위 디렉터리에서 테스트를 실행하려면 셸 스크립트나 Makefile을 사용하여 각 하위 디렉터리에서 개별적으로 go 테스트를 실행해야 합니다.

예를 들어 Makefile을 사용하여 하위 디렉터리를 반복할 수 있습니다. 테스트하고 결과를 집계합니다.

all-tests:
    for dir in one two; do \
        make -C $$(cd $$dir && pwd) test; \
    done

또는 동일한 작업을 수행하기 위해 쉘 스크립트를 작성할 수 있습니다.

<code class="sh">#!/bin/sh
for dir in one two; do
    (
        cd "$dir"
        go test
    )
done</code>

여러 모듈이 있는 대규모 프로젝트에서는 전용 테스트 원래 답변에 제공된 예에서 볼 수 있듯이 스크립트 또는 Makefile은 테스트 프로세스를 자동화하는 데 자주 사용됩니다. 이러한 스크립트는 일반적으로 모듈 목록을 반복하고 각 디렉터리에 대해 go 테스트를 실행합니다.

위 내용은 상위 디렉터리에서 중첩된 Go 모듈을 테스트하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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