カテゴリ: Go言語 更新日: 2026/01/14

Go言語のテスト自動化とCIツール連携の完全ガイド!初心者でもわかる継続的テスト

Go言語のテストの自動化とCIツールとの連携例
Go言語のテストの自動化とCIツールとの連携例

先生と生徒の会話形式で理解しよう

生徒

「Go言語でテストを書いたんですが、毎回手動で実行するのは面倒です。自動でテストを実行する方法はありますか?」

先生

「もちろんです。Go言語ではgo testコマンドを使ってテストを自動化できますし、CIツールと連携すれば、コードを更新するたびに自動でテストを実行できます。」

生徒

「CIツールって何ですか?」

先生

「CIはContinuous Integrationの略で、継続的インテグレーションといいます。開発者がコードを変更した際に、自動でテストやビルドを行い、問題がないか確認する仕組みです。」

1. go testコマンドでテスト自動化

1. go testコマンドでテスト自動化
1. go testコマンドでテスト自動化

Go言語ではgo testコマンドを使ってテストを実行します。自動化とは、毎回手動でコマンドを入力するのではなく、スクリプトやツールで自動的にテストを実行することです。


go test ./...

このコマンドは、現在のプロジェクト内のすべてのテストファイルを探して実行します。./...はサブディレクトリも含めてすべてのパッケージを対象にする指定です。

2. go testの便利なオプション

2. go testの便利なオプション
2. go testの便利なオプション

テストを自動化する際には、いくつかのオプションが便利です。

  • -v:テストの詳細なログを表示
  • -cover:テストカバレッジを表示
  • -run :特定のテストだけを実行
  • -timeout <時間>:テストのタイムアウトを設定

go test -v -cover ./...

これにより、テスト結果とカバレッジ情報を自動で確認できます。

3. CIツールとの連携

3. CIツールとの連携
3. CIツールとの連携

GitHub ActionsやGitLab CIなどのCIツールを使うと、コードをプッシュしたタイミングで自動的にテストを実行できます。


# GitHub Actionsの例
name: Go Test
on:
  push:
    branches: [ main ]
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3
    - name: Set up Go
      uses: actions/setup-go@v4
      with:
        go-version: 1.21
    - name: Run Tests
      run: go test -v ./...

この設定をリポジトリに追加すると、mainブランチにプッシュするたびにテストが自動で実行されます。

4. CI連携のメリット

4. CI連携のメリット
4. CI連携のメリット

CIと自動テストを組み合わせることで、以下のメリットがあります。

  • 人為的なミスを防ぎ、コード品質を向上
  • 複数の開発者が同時に作業しても、問題を早期に検出
  • テスト結果やカバレッジを自動で確認できる

つまり、開発の効率化と品質保証の両方を同時に実現できるわけです。

5. 初心者向けの自動化手順まとめ

5. 初心者向けの自動化手順まとめ
5. 初心者向けの自動化手順まとめ
  • まずはgo testでテストが正しく動くことを確認する
  • 必要なオプション(-v-cover)を付けてスクリプト化する
  • GitHub ActionsやGitLab CIでCIを設定し、push時に自動実行
  • テストが失敗した場合はログを確認して原因を修正

この流れを守ることで、Go言語のテストを自動化し、安定して開発を進めることができます。

カテゴリの一覧へ
新着記事
New1
Go言語
Go言語とは何か?初心者向けに特徴・できること・インストール手順までやさしく解説
New2
Kotlin
Kotlinのコーディング規約(公式スタイルガイド)とは?読みやすいコードを書くための基本ルール
New3
Kotlin
Kotlinの関数型を整理するパッケージ・ファイル構造の例を初心者向けにやさしく解説!
New4
Swift
Swiftデータ型まとめ|String・Int・Bool・Arrayの基本を初心者向けに解説
人気記事
No.1
Java&Spring記事人気No1
Go言語
Go言語の関数パラメータ!値渡しと参照渡しの違いを理解しよう
No.2
Java&Spring記事人気No2
Kotlin
Kotlinの演算子一覧と使い方!算術・比較・論理演算子の基本を解説
No.3
Java&Spring記事人気No3
Go言語
Go言語のWebアプリにおけるセキュリティベストプラクティス集
No.4
Java&Spring記事人気No4
Swift
Swift開発環境の構築方法を徹底解説!Xcode・Windows・Linux対応
No.5
Java&Spring記事人気No5
Swift
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.6
Java&Spring記事人気No6
Kotlin
Gradleファイル(build.gradle.kts)の書き方と役割をやさしく解説!Kotlin初心者向け完全ガイド
No.7
Java&Spring記事人気No7
Kotlin
Kotlinのgetter・setterのカスタマイズ方法をわかりやすく解説!初心者向け完全ガイド
No.8
Java&Spring記事人気No8
Kotlin
Android Studioのインストール手順と初期設定を初心者向けに完全解説!