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

Barbara Streisand
リリース: 2024-10-30 03:19:03
オリジナル
955 人が閲覧しました

How to Test Multiple Go Modules in a Parent Directory?

親ディレクトリ内の複数のモジュールのテスト

親ディレクトリ内の複数の Go モジュールを操作する場合、複数の Go モジュール間でテストを実行するのは困難な場合があります。それらすべて。以下のようなディレクトリ構造を考えてみましょう:

/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 コマンドは、現在のディレクトリまたはその親にルートされた単一のモジュールで動作するように設計されています。ネストされたモジュールのテストはサポートされていません。

この問題を解決するには、シェル トリックを使用する必要があります。 Cerise Limón のコメントで示唆されているように、1 つのアプローチは find コマンドと xargs コマンドを組み合わせて使用​​することです。プロジェクトでは、このプロセスを自動化するために Makefile または test.sh スクリプトを作成することがよくあります。

多数のモジュールを含む大規模なプロジェクトの場合、より体系的なアプローチは、すべてのモジュールのリストを維持することです (Google の go-cloud プロジェクトのように) 。次に、プロジェクトはモジュール リストをループし、各ディレクトリのテストの実行などのタスクを実行するスクリプトを使用します。

例:

次の test.sh スクリプトはこれを示しています。アプローチ:

<code class="sh">#!/bin/bash

for module in $(cat allmodules); do
  cd $module
  go test
  cd ..
done</code>
ログイン後にコピー

注:

モジュールをリストするのに別個のファイルは必要ないかもしれませんが、go-cloud プロジェクトの実装は、どれほど大きくなるかを示す例を提供します。プロジェクトは複数モジュールのテストを管理します。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!