ホームページ  >  記事  >  バックエンド開発  >  Go テスト用の作業ディレクトリを正しく設定するにはどうすればよいですか?

Go テスト用の作業ディレクトリを正しく設定するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-31 03:57:02831ブラウズ

How to Correctly Set the Working Directory for Go Tests?

Go テストでの作業ディレクトリの問題の解決

Go では、単体テストで特定の作業ディレクトリにある構成ファイルにアクセスするときに問題が発生することがあります。この記事では、このような問題に対処し、テスト実行に必要な作業ディレクトリを使用するように go test コマンドをガイドする方法を検討します。

次の状況を考えてみましょう: Go アプリケーションの単体テストは、conf/* に存在する構成ファイルに依存します。 .conf。ただし、これらのテストを実行すると、バイナリが構成ファイルを見つけることができないため、テストは失敗します。

この問題を解決するには、conf/ ディレクトリを含むディレクトリに移動して go test を実行するのが直感的かもしれません。ただし、このアプローチでは不十分なことがよくあります。テストが正しい作業ディレクトリで実行されることを保証するために、Go は特定のメカニズムを提供します。

Caller 関数の利用

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。