親ディレクトリからのネストされた Go モジュールのテスト
Go のテスト フレームワークである go test は、単一の Go モジュール内で動作するように設計されています。複数の Go モジュールがネストされたサブディレクトリに存在する、前述のようなフォルダー構造が発生した場合、ルート ディレクトリから go test を実行することは成功しません。
発生したエラー メッセージ「テストするパッケージがありません」は、次のことを示しています。 go test は、現在のディレクトリまたはその親内でテスト可能なパッケージを見つけることができませんでした。これは、go test が現在のディレクトリまたはその直接の親にルートされた単一のモジュールで動作することを想定しているためです。
残念ながら、go test は現在、ネストされたモジュールの直接テストをサポートしていません。複数のサブディレクトリでテストを実行するには、シェル スクリプトまたは Makefile を使用して、各サブディレクトリで個別に go test を実行する必要があります。
たとえば、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 test を実行します。
以上が親ディレクトリからネストされた Go モジュールをテストするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。