ホームページ > バックエンド開発 > Golang > Go 単体テストでカスタム コマンドライン フラグを適切にテストするにはどうすればよいですか?

Go 単体テストでカスタム コマンドライン フラグを適切にテストするにはどうすればよいですか?

DDD
リリース: 2024-11-28 18:48:15
オリジナル
288 人が閲覧しました

How to Properly Test Custom Command-Line Flags in Go Unit Tests?

Go 単体テストでのカスタム コマンド ライン フラグのテスト

単体テストを使用したモジュラー Go アプリケーションで、カスタム コマンド ライン フラグを設定する特定のテストは困難であることが判明する場合があります。 flag パッケージを使用してテストの初期化でフラグを設定すると、テストの実行時にエラーが発生する可能性があります。

問題

テスト コマンドの実行時:

go test -test.v ./... -gamedir.custom=c:/resources
ログイン後にコピー

次のエラーが発生する可能性があります:

flag provided but not defined: -gamedir.custom
ログイン後にコピー

このエラーは、 -gamedir.custom フラグは、テスト実行可能ファイルによって認識されません。

分析

この問題は、go test コマンドがワークスペース内のすべてのテストを実行し、提供されたものを適用するために発生します。全員にフラグを立てます。ただし、特定のテストで -gamedir.custom フラグが使用されていない場合、テストの実行は未定義フラグ エラーで失敗します。

解決策

この問題を解決するには、各テストに適切なフラグを指定して、各テスト実行可能ファイルに対して個別に go test を実行できます。これは、テスト実行可能ファイルを直接渡すようにコマンドを変更することで実行できます。

go test -test.v ./path/to/test.go -gamedir.custom=c:/resources
ログイン後にコピー

このアプローチにより、指定されたテスト実行可能ファイルのみが -gamedir.custom フラグを受け取るようになり、未定義のフラグ エラーが解決されます。

以上がGo 単体テストでカスタム コマンドライン フラグを適切にテストするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート