ホームページ >バックエンド開発 >Golang >複数の Go モジュールの親ディレクトリで「go test」を実行するにはどうすればよいですか?

複数の Go モジュールの親ディレクトリで「go test」を実行するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-29 03:09:29364ブラウズ

How to Run `go test` in the Parent Directory of Multiple Go Modules?

複数の Go モジュールの親ディレクトリで go test を実行する

複数の Go モジュールがサブディレクトリに配置されているディレクトリ構造に遭遇した場合、go test を実行します親ディレクトリからのアクセスは課題となる可能性があります。次のコード スニペットは、この問題を示しています。

/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 が使用されているために発生します。現在のディレクトリまたはその親にある単一のモジュールで動作するように特別に設計されています。ネストされたモジュールや、複数モジュールの親ディレクトリからのテストの実行はサポートされていません。

これを解決するには、シェル スクリプトを作成するか、find などのユーティリティを使用して個々のモジュールに移動し、 go を実行します。これらのディレクトリ内でテストします。例:

cd /root/one
go test .
cd /root/two
go test .

また、一部のプロジェクトでは、Makefile または test.sh スクリプトを利用してこのプロセスを自動化する場合があります。たとえば、次の仮想プロジェクトの test.sh スクリプトは、モジュールのリストをループし、ディレクトリごとに go test を実行します:

#!/bin/bash

modules="one two three"

for module in $modules; do
    cd $module
    go test .
    cd ..
done

以上が複数の Go モジュールの親ディレクトリで「go test」を実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。