サブディレクトリを使用した Go パッケージのテスト
Go 開発の領域では、一般的な質問が生じます。強化するためにサブディレクトリ内でテストを整理できますか?作業場の清潔さ?この記事は、このトピックに光を当てることを目的としています。
テストの実践と Go の規約
伝統的に、Go ドキュメントでは、テスト コードを運用コードと同じ場所に配置することを推奨しています。この方法では、エクスポートされていないプログラム メンバーへのアクセスが簡素化される可能性がありますが、ワークスペースが乱雑になる可能性があります。ただし、アクセシビリティを維持しながらテストをサブディレクトリに分割する方法があります。
テストの再帰的実行
複数のサブディレクトリにわたってテストを実行するには、「go test」を利用できます。 " コマンドを "./..." 表記で使用します。プロジェクトのルート ディレクトリから、次のように入力します。
go test ./...
このコマンドは、プロジェクトのディレクトリ構造を再帰的に走査し、見つかったすべてのテスト ファイルを識別して実行します。
個別のディレクトリに関する考慮事項
テストが別のディレクトリに存在する場合は、特別な注意が必要です。メイン パッケージ内でエクスポートされた変数と関数には、パッケージ名が接頭辞として付いていることを確認してください。これにより、テスト ファイルがエクスポートされたコンテンツにアクセスできるようになります。さらに、エクスポートされていないコンテンツにはアクセスできないままになります。
パッケージとディレクトリの分離
ディレクトリを分離すると、よりクリーンな編成が可能になりますが、テスト ファイルをメイン ソースに隣接した状態に保つことができます。ファイルの場所を簡単に指定できるため、ファイルは依然として実用的な選択肢です。
コード カバレッジは終了しました時間
CI/CD パイプライン内の Go プロジェクトの集計コード カバレッジ統計を生成するには、「gocoverstats」プロジェクトを利用します。
統合テスト カバレッジ
Go 1.20 では、カバレッジ ツールが統合テストまで拡張され、大規模なテストからプロファイルを収集できるようになりました。 suites.
代替テスト手法
あるいは、サブディレクトリではなく別のパッケージ内にテストを編成することを検討できます。パッケージ「foo」のテスト ファイルは、同じディレクトリ内に残りながら、「foo_test」という名前のパッケージに常駐できます。このアプローチにより、パッケージ「foo.」のエクスポートされていないメンバーへのアクセスが防止されます。
以上がGo テストをサブディレクトリに整理できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。