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

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

Barbara Streisand
リリース: 2024-10-29 03:09:29
オリジナル
381 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート