概要
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遅い話題はこの資料が参考になりました