ホームページ > バックエンド開発 > Golang > Go のサブディレクトリでテストを実行できますか?

Go のサブディレクトリでテストを実行できますか?

Linda Hamilton
リリース: 2024-11-26 11:25:10
オリジナル
541 人が閲覧しました

Can You Run Tests in Subdirectories in Go?

Go のサブディレクトリでのテストの実行

テストとサンプルをサブディレクトリに配置してワークスペースを整理することは、効率的なアプローチです。この記事では、Go でこれを実現するために必要な実現可能性と手順について説明します。

サブディレクトリでのテスト

Go では、「」を使用してフル パスを指定することで、サブディレクトリからテストを実行できます。 ./...":

go test ./...
ログイン後にコピー

このコマンドは、パッケージのすべてのサブディレクトリをスキャンし、それらの中でテストを行います。ただし、考慮すべき影響がいくつかあります。

パッケージのアクセスと可視性

テスト ファイルをサブディレクトリに配置する場合、エクスポートされた変数と関数にパッケージ名をプレフィックスとして付けることが重要です。エクスポートされたコンテンツにアクセスするためのテスト ファイル用。エクスポートされていないメンバーにはアクセスできません。

go testgo 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 サイトの他の関連記事を参照してください。

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