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