2015-12-08 7 views
6

ローカルファイルを使用してGolangを使用してテストするときに使用するベストプラクティスを探しています。ローカルファイルを使用したGolangテスト

ローカルファイルを使用することによって、機能をテストするために、アプリケーションがこれらのファイルから頻繁に読み込むので、ローカルファイルが必要になることを意味します。

ioutilパッケージのtempdirとtempfile関数を使ってテストを実行する直前に自分自身でテンポラリファイルを書くべきかどうか分かりません。

testing/...test_files_here 
main.go 
main_test.go 

、次に(ヘルプパッケージを行く参照)

testing/... 

おかげ

+11

それがGOツールによって無視されるよう 'testdata'は通常、この目的のために使用されるという名前のフォルダ(ヘルプパッケージを行く'見ます') – Volker

+0

ああ私はそれを参照してください。 「で始まるディレクトリとファイル名」。」または 『テストデータ_『』という名前のディレクトリがあるとして、GOツールによって を無視している』 はそれを発見しませんでした。これは怠惰なアプローチで、あなたに – Miller

+2

確かに感謝しかし、私はテストデータを '* _test.go'ファイルのすぐ隣に置いています:アクセスしやすく、見つけやすく、周りに置いても構いません。もう一つのオプションは' // go:generate'と ' go-bindata](https://github.com/jteeuwen/go-bindata)を作成してください。 –

答えて

2

これは私の現在のテスト・セットアップです:

app/ 
    main.go 
    main_test.go 
    main_testdata 

    package1/ 
    package1.go 
    package1_test.go 
    package1_testdata1 

    package2/ 
    package2.go 
    package2_test.go 
    package2_testdata1 

単一のパッケージに固有のすべてのテストデータは、そのパッケージのディレクトリ内に配置されます。複数のパッケージで使用される共通のテストデータは、アプリケーションルートまたは$HOMEに置かれます。

この設定は私のために機能します。余分なタイピングを行うことなしに、データやテストを変更することがその簡単:

vim package1_test_data1; go test app/package1

1

それがGOツールによって無視されるようテストデータは、通常は、この目的のために使用されるという名前のフォルダ内のコンテンツから読み取ります。

関連する問題