Go では、単体テストで特定の作業ディレクトリにある構成ファイルにアクセスするときに問題が発生することがあります。この記事では、このような問題に対処し、テスト実行に必要な作業ディレクトリを使用するように go test コマンドをガイドする方法を検討します。
次の状況を考えてみましょう: Go アプリケーションの単体テストは、conf/* に存在する構成ファイルに依存します。 .conf。ただし、これらのテストを実行すると、バイナリが構成ファイルを見つけることができないため、テストは失敗します。
この問題を解決するには、conf/ ディレクトリを含むディレクトリに移動して go test を実行するのが直感的かもしれません。ただし、このアプローチでは不十分なことがよくあります。テストが正しい作業ディレクトリで実行されることを保証するために、Go は特定のメカニズムを提供します。
Go のランタイム パッケージには、ソースに関する情報を取得できる Caller と呼ばれる関数が用意されています。それを呼び出したファイル。この情報にはファイル名とパスが含まれます:
<code class="go">package sample import ( "testing" "runtime" "fmt" ) func TestGetFilename(t *testing.T) { _, filename, _, _ := runtime.Caller(0) t.Logf("Current test filename: %s", filename) }</code>
この手法を使用すると、構成ファイルを含むディレクトリを見つけて、その情報を go test に渡して、テスト実行用の作業ディレクトリを設定できます。
以上がGo テスト用の作業ディレクトリを正しく設定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。