Go のサブディレクトリでのテストの実行
テストとサンプルをサブディレクトリに配置してワークスペースを整理することは、効率的なアプローチです。この記事では、Go でこれを実現するために必要な実現可能性と手順について説明します。
サブディレクトリでのテスト
Go では、「」を使用してフル パスを指定することで、サブディレクトリからテストを実行できます。 ./...":
go test ./...
このコマンドは、パッケージのすべてのサブディレクトリをスキャンし、それらの中でテストを行います。ただし、考慮すべき影響がいくつかあります。
パッケージのアクセスと可視性
テスト ファイルをサブディレクトリに配置する場合、エクスポートされた変数と関数にパッケージ名をプレフィックスとして付けることが重要です。エクスポートされたコンテンツにアクセスするためのテスト ファイル用。エクスポートされていないメンバーにはアクセスできません。
go test と go test -cover
go test -cover を使用する場合 コード カバレッジの場合、-coverpkg=./... を使用して収集することが重要ですすべてのパッケージのカバレッジ データ:
go test -coverpkg=./... ./...
統合テスト
Go 1.20 以降、カバレッジ プロファイリングで統合テストがサポートされるようになりました。実行可能ファイルのビルド時に -cover を使用し、カバレッジ データの場所を指定するには GOCOVERDIR を使用します。
go build -cover -o myprogram.exe myprogram.go mkdir somedata GOCOVERDIR=somedata ./myprogram.exe
代替アプローチ
テストをサブディレクトリに配置せずに、別のパッケージに分割することもできます。たとえば、パッケージ「foo」のテストは、同じディレクトリ内のパッケージ「foo_test」に常駐でき、「foo」のエクスポートされたメンバーのみにアクセスできるようにします。
結論
サブディレクトリからテストを実行することは技術的には可能ですが、構成とアクセシビリティの観点からはベストプラクティスではない可能性があります。同じディレクトリ内に別のテスト パッケージを作成するという代替アプローチは、テストをより効率的に管理するための実行可能なオプションです。
以上がGo のサブディレクトリでテストを実行できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。