LoginSignup
2
2

More than 5 years have passed since last update.

ファイルを保存するたびに自動でテストを実行する

Last updated at Posted at 2014-11-30

はじめに

前回、GO言語のソースファイルを保存したときに自動的にテストしてくれるツールがあったので、使い方を書きました。
使用したツールはguard-goでしたが、全体でいくつ実行して、いくつ失敗したのか分からないといちいちコンソールを見て想定通りになっているか確認しなければならず、ちょっと不便に思えたので、guardのプラグインを作成しました。リポジトリはこちら

どんなプラグインなのか?

guard-go同様、保存するたびに自動で go test を実行し、成功すれば success を表示します。失敗したときは、実行したテストの総数と失敗したテストの数を返します。

成功したときに表示されるメッセージ

success.png

失敗したときに表示されるメッセージ

fail.png

注意点

作成したプラグインは、goのテスティングフレームワーク Gospel にのみ対応しています。

使用するツール

  • Sublime Text 3:テキストエディタ
  • GoSublime:Sublime Text 3 のプラグイン
  • gospel:Rspec風のテスティングフレームワーク
  • bundler:Rubyのgemパッケージ管理ツール
  • rake:Rubyのビルドツール
  • guard-go:ファイル監視ツール

前提条件

既に下記のツールや実行環境がインストール済みであることを前提とします。

  1. Sublime Text 3
  2. GoSublime
  3. gospel
  4. Ruby

guard-gospel のセットアップ

インストール

git clone https://github.com/135yshr/guard-gospel.git
cd guard-gospel
sudo rake install

初期化

bundle exec guard init gospel

サンプルコード

helloworld_test.go
package go_gospel

import (
    . "github.com/r7kamura/gospel"
    "testing"
)

func TestSpec(t *testing.T) {
    Describe(t, "Hello World を取得するクラス", func() {
        Context("Hello Worldを取得する", func() {
            It("関数を呼び出しHello World!をが取得できる", func() {
                sut := &HelloWorld{}
                Expect(sut.say()).To(Equal, "Hello World!")
            })
        })
    })
}
helloworld.go
package go_gospel

type HelloWorld struct{}

func (self *HelloWorld) say() string {
    return "Hello World!"
}
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