2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Goでテストコードのみのリポジトリを作る時の落とし穴

Last updated at Posted at 2015-07-10

やろうとしたこと

製品のリポジトリを作った。

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.

テストコードの依存パッケージを取るためのオプションがあった。何故見逃したし。
これでなんとかなるといいなあ。

2
2
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
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?