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

상위 디렉토리에서 여러 Go 모듈을 테스트하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-30 03:19:031078검색

How to Test Multiple Go Modules in a Parent Directory?

상위 디렉터리에서 여러 모듈 테스트

상위 디렉터리에서 여러 Go 모듈로 작업할 때 전체에서 테스트를 실행하는 것이 어려울 수 있습니다. 그들 모두. 아래와 같은 디렉터리 구조를 고려해보세요.

/root
    /one
        go.mod
        go.sum
        main.go
        main_test.go
    /two
        go.mod
        go.sum
        main.go
        main_test.go

문제:

go test./..를 사용하여 상위 디렉터리 아래의 모든 모듈에 대해 테스트를 실행하려고 합니다. . 오류가 발생합니다:

go: warning: "./..." matched no packages
no packages to test

해결 방법:

go test 명령은 현재 디렉터리 또는 상위 디렉터리에 루트가 있는 단일 모듈에서 작동하도록 설계되었습니다. 중첩된 모듈 테스트는 지원하지 않습니다.

이 문제를 해결하려면 셸 트릭을 사용해야 합니다. 한 가지 접근 방식은 Cerise Limón의 의견에서 제안한 대로 find 및 xargs 명령을 조합하여 사용하는 것입니다. 프로젝트에서는 이 프로세스를 자동화하기 위해 Makefile 또는 test.sh 스크립트를 생성하는 경우가 많습니다.

수많은 모듈이 포함된 대규모 프로젝트의 경우 보다 체계적인 접근 방식은 모든 모듈 목록을 유지하는 것입니다(Google의 go-cloud 프로젝트에서처럼). . 그런 다음 프로젝트는 모듈 목록을 반복하고 각 디렉터리에 대해 테스트 실행과 같은 작업을 수행하는 스크립트를 사용합니다.

예:

다음 test.sh 스크립트는 이를 보여줍니다. 접근 방식:

<code class="sh">#!/bin/bash

for module in $(cat allmodules); do
  cd $module
  go test
  cd ..
done</code>

참고:

모듈을 나열하는 데 별도의 파일이 필요하지 않을 수 있지만 go-cloud 프로젝트의 구현은 얼마나 큰지에 대한 예를 제공합니다. 프로젝트는 다중 모듈 테스트를 관리합니다.

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

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