replace ディレクティブを使用してインポートされたローカル go モジュールをテストし、ホーム フォルダー内のベンダー ディレクトリを使用します。

WBOY
リリース: 2024-02-10 16:27:11
転載
712 人が閲覧しました

测试使用替换指令导入的本地 go 模块并使用主文件夹中的供应商目录

この記事では、編集者の Youzi が、置換コマンドを使用して go モジュールをローカルにインポートし、メイン フォルダーのサプライヤー ディレクトリを使用する方法を紹介します。置換命令は Go 言語の強力な機能であり、これにより開発プロセス中にローカル モジュールをより柔軟に導入でき、コードの保守性と再利用性が向上します。この記事のガイダンスを通じて、誰もがこのテクニックを簡単にマスターし、Go 言語をより効率的に開発できるようになると思います。それでは具体的な手順を見ていきましょう!

質問内容

myexporter はローカル モジュールで、replace を使用してメイン モジュールにインポートします。メインプロジェクトのルートにあるベンダーフォルダーを使用して、myexporter でテストを実行したいと考えています。

私のプロジェクトのディレクトリ構造は次のようになります

リーリー

myexporter go.mod ファイル

リーリー

エージェント go.mod ファイルには

があります リーリー

私の質問は

です
  1. 「go test -mod=vendor ./...」を実行すると、main_test run でのみテストされます
  2. 「go test -mod=vendor exporter/myexporter」を使用すると、「package exporter/myexporter is not in goroot」というメッセージが表示されます
  3. 「go test -mod=vendor bitbucket.com/agent/exporter/myexporter」を実行すると、テスト ファイルがありません
  4. exporter/myexporter ディレクトリに切り替えて「go test ./...」を実行すると機能しますが、「go test -mod=vendor ./...」は機能しません。これは、vendor ディレクトリが存在するためです。エージェントのルートディレクトリ李>
  5. 「go test -mod=vendor ./exporter/myexporter/」を実行すると、「メイン モジュール (bitbucket.com/agent) にはパッケージ bitbucket.com/agent/exporter/myexporter が含まれていません」というメッセージが表示されます。
ビルドは go パッケージにアクセスできません。ベンダー フォルダーに依存し、テストにも同じことが当てはまります。 myexporter 内の別のベンダー フォルダーに依存関係の複数のコピーが存在することは望ましくありません。エージェント/ベンダーフォルダーを使用して myexporter 内でテストを実行する方法はありますか?

回避策

エージェント/ベンダー フォルダーを使用して MyExporter 内でテストを実行する方法はありますか?

###いいえ。

myexporter がどこにあるかをテストする必要があります。提供されると、実際のコードのみが提供されます。

唯一の可能性はモジュールを結合することです。

これは要するに次のことです。何らかの方法で 2 つのモジュールを並行/一貫してテストする必要がある場合、それらは実際には

異なる

ライフサイクルを持つ 2 つの異なるモジュールではありません。これらが異なるライフサイクルを持つ別個のものである場合は、最初のものをテストし、動作することを確認して、2 番目のものに提供することができます。次に、最初のテストの使用を含めて 2 番目のテストをテストします。ただし、最初のテストは不要になったので実行しないでください。

以上がreplace ディレクティブを使用してインポートされたローカル go モジュールをテストし、ホーム フォルダー内のベンダー ディレクトリを使用します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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