ホームページ  >  記事  >  バックエンド開発  >  親ディレクトリからネストされた Go モジュールをテストするにはどうすればよいですか?

親ディレクトリからネストされた Go モジュールをテストするにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-28 20:11:02493ブラウズ

How to Test Nested Go Modules from the Parent Directory?

親ディレクトリからのネストされた 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 サイトの他の関連記事を参照してください。

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