go build, go run, go testの使い方

Goのツールチェインは、Goプログラムの開発・実行・テストを効率的に行うためのコマンド群です。その中でも頻繁に使用される基本的なコマンドである go buildgo rungo test の使い方について以下に詳しく説明します。


1. go build の使い方

概要:

go build は、Goプログラムのソースコードをビルドして実行可能なバイナリを生成するコマンドです。

使用例:

bash
go build main.go

動作内容:

  • ソースコード内の main パッケージをコンパイルし、カレントディレクトリに実行可能なファイル(例: mainmain.exe)を生成します。

  • main.go を指定しなかった場合、カレントディレクトリにある main パッケージが自動的にビルド対象になります。

オプション例:

  • -o:出力ファイル名を指定。

    bash
    go build -o myapp main.go

2. go run の使い方

概要:

go run は、ソースコードを一時的にビルドして即座に実行するためのコマンドです。試しにプログラムを動かしたいときに便利です。

使用例:

bash
go run main.go

動作内容:

  • main.go をビルドして即時に実行。

  • 一時的なバイナリが作成されて実行後に削除されるため、実行ファイルは残りません。

複数ファイルの場合:

bash
go run main.go utils.go

3. go test の使い方

概要:

go test は、Goに標準で備わっているテストフレームワークを使って、テストファイル(*_test.go)を実行するためのコマンドです。

使用例:

bash
go test

動作内容:

  • カレントディレクトリ内のすべての *_test.go ファイルを探して、定義されたテスト関数(TestXxx 形式)を実行します。

テスト関数の書き方(例):

go
import "testing" func TestAdd(t *testing.T) { if Add(2, 3) != 5 { t.Errorf("expected 5, got %d", Add(2, 3)) } }

よく使うオプション:

  • -v:詳細な出力(各テスト関数の実行内容を表示)

    bash
    go test -v
  • ./...:サブディレクトリも含めて全てのパッケージをテスト

    bash
    go test ./...

補足:これらのコマンドの使い分け

コマンド 用途 出力ファイル 主な目的
go build 実行ファイルの生成 あり 配布やデプロイ用のビルド
go run 即時実行 なし 試しに実行してみる場合に使用
go test 単体テストの実行 なし 品質保証・回帰防止のため

必要に応じて他のGoツール(go install, go fmt, go mod など)も併用することで、効率的な開発が可能になります。

生成日:2025/05/03