LoginSignup
5
1

More than 5 years have passed since last update.

go testやgoapp test時に相対パスのズレを解消する方法

Posted at

概要

goapp test や go testでの相対パスと、httpサーバ立ち上げるgoapp serveでの相対パスがズレてテストが失敗する場合はテストの初期化処理で相対パスを再設定すると解決する。

# 相対パスを再設定する
apath, _ := filepath.Abs("../../../")
os.Chdir(apath)

背景

GAE GO 便利ですね。 google.golang.org/appengine/aetest 使ってテスト書いていくのですがaetestがとにかく遅い。request作成毎に裏でpythonでhttpサーバ立ち上げているせいで1回2秒くらいかかります。そのため2018年7月現在のベストプラクティスはgoapp testでaetest利用を最低限にして、個別にgo testで単体テストを書いていくことになります。

結果次のようなコードを書くことになります goapp test -v ./src/api/handler/ 結果として相対パスが goapp serve 3つズレます。これは os.Chdir(apath) で解消することができます。aetest早くなるといいですね。

参考

aetest遅い話題はこの資料が参考になりました
- メルカリアッテの実務で使えた、GAE/Goの開発を効率的にする方法

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1