やろうとしたこと
起
製品のリポジトリを作った。
github.com/hoge/fuga
コードいっぱい書いた。ユニットテストもいっぱい書いて同じリポジトリに入れた。
承
リポジトリがあまりに大きくなってしまったので、インテグレーションテストは別のリポジトリに分けようと思った。
github.com/hoge/fugatest
またいっぱいテストコード書いた
転
折角だから別のマシンでもテストしてみよう。
Goはgo getコマンド一つで依存パッケージ含めてダウンロードできるから楽だよね。
結
> go get github.com/hoge/fugatest
package github.com/hoge/fugatest
imports github.com/hoge/fugatest
imports github.com/hoge/fugatest: no buildable Go source files in c:\gopath\src\hoge\fugatest
_人人人人人人_
> 突然の死 <
 ̄Y^Y^Y^Y^Y ̄
傾向と対策
何がダメだったの?
go getはリモートリポジトリからのダウンロード後に自動でgo installするので、リポジトリの直下にmainが無いとエラーになっちゃうみたい。
試してみたこと
The -d flag instructs get to stop after downloading the packages; that is, it instructs get not to install the packages.
公式ドキュメント読んでみたら、-dオプション使えばダウンロードだけでinstallしないって書いてあった。早速やってみよう。
> go get -d -u github.com/hoge/fugatest
package github.com/hoge/fugatest
imports github.com/hoge/fugatest
imports github.com/hoge/fugatest: no buildable Go source files in c:\gopath\src\hoge\fugatest
_人人人人人人人人人人人人_
> やっぱり駄目だった! <
 ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄
結局
リポジトリ直下にダミーのmain.goを作ってエラーを回避しました。なんかすっきりしない。
てかこの方法だとテストコードの依存パッケージ落ちてこないしgo getの恩恵が薄い。悲しいなあ。
ここまで書いて気付いた
The -t flag instructs get to also download the packages required to build the tests for the specified packages.
テストコードの依存パッケージを取るためのオプションがあった。何故見逃したし。
これでなんとかなるといいなあ。